activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From clebertsuco...@apache.org
Subject [11/25] activemq-6 git commit: ACTIVEMQ6-9 - port to markdown
Date Mon, 08 Dec 2014 15:49:42 GMT
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/large-messages.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/large-messages.xml b/docs/user-manual/en/large-messages.xml
deleted file mode 100644
index 43bc2a8..0000000
--- a/docs/user-manual/en/large-messages.xml
+++ /dev/null
@@ -1,285 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ============================================================================= -->
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more            -->
-<!-- contributor license agreements. See the NOTICE file distributed with          -->
-<!-- this work for additional information regarding copyright ownership.           -->
-<!-- The ASF licenses this file to You under the Apache License, Version 2.0       -->
-<!-- (the "License"); you may not use this file except in compliance with          -->
-<!-- the License. You may obtain a copy of the License at                          -->
-<!--                                                                               -->
-<!--     http://www.apache.org/licenses/LICENSE-2.0                                -->
-<!--                                                                               -->
-<!-- Unless required by applicable law or agreed to in writing, software           -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS,             -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.      -->
-<!-- See the License for the specific language governing permissions and           -->
-<!-- limitations under the License.                                                -->
-<!-- ============================================================================= -->
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "ActiveMQ_User_Manual.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="large-messages">
-    <title>Large Messages</title>
-    <para>ActiveMQ supports sending and receiving of huge messages, even when the client and server
-        are running with limited memory. The only realistic limit to the size of a message that can
-        be sent or consumed is the amount of disk space you have available. We have tested sending
-        and consuming messages up to 8 GiB in size with a client and server running in just 50MiB of
-        RAM!</para>
-    <para>To send a large message, the user can set an <literal>InputStream</literal> on a message
-        body, and when that message is sent, ActiveMQ will read the <literal>InputStream</literal>. A
-            <literal>FileInputStream</literal> could be used for example to send a huge message from
-        a huge file on disk.</para>
-    <para>As the <literal>InputStream</literal> is read the data is sent to the server as a stream
-        of fragments. The server persists these fragments to disk as it receives them and when the
-        time comes to deliver them to a consumer they are read back of the disk, also in fragments
-        and sent down the wire. When the consumer receives a large message it initially receives
-        just the message with an empty body, it can then set an <literal>OutputStream</literal> on
-        the message to stream the huge message body to a file on disk or elsewhere. At no time is
-        the entire message body stored fully in memory, either on the client or the server.</para>
-    <section id="large.message.configuring">
-        <title>Configuring the server</title>
-        <para>Large messages are stored on a disk directory on the server side, as configured on the
-            main configuration file.</para>
-        <para>The configuration property <literal>large-messages-directory</literal> specifies where
-            large messages are stored.</para>
-        <programlisting>
-&lt;configuration xmlns="urn:activemq"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="urn:activemq /schema/activemq-configuration.xsd">
-...
-&lt;large-messages-directory>/data/large-messages&lt;/large-messages-directory>
-...
-&lt;/configuration</programlisting>
-        <para>By default the large message directory is <literal>data/largemessages</literal></para>
-        <para>For the best performance we recommend large messages directory is stored on a
-            different physical volume to the message journal or paging directory.</para>
-    </section>
-    <section>
-        <title>Configuring Parameters</title>
-        <para>Any message larger than a certain size is considered a large message. Large messages
-            will be split up and sent in fragments. This is determined by the parameter <literal
-                >min-large-message-size</literal></para>
-        <note>
-           <para>ActiveMQ messages are encoded using 2 bytes per character so if the message data is filled
-              with ASCII characters (which are 1 byte) the size of the resulting ActiveMQ message would roughly
-              double. This is important when calculating the size of a "large" message as it may appear to be
-              less than the <literal>min-large-message-size</literal> before it is sent, but it then turns into
-              a "large" message once it is encoded.</para>
-        </note>
-        <para>The default value is 100KiB.</para>
-        <section id="large-messages.core.config">
-            <title>Using Core API</title>
-            <para>If the ActiveMQ Core API is used, the minimal large message size is specified by
-                    <literal>ServerLocator.setMinLargeMessageSize</literal>.</para>
-            <programlisting>
-ServerLocator locator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(NettyConnectorFactory.class.getName()))
-
-locator.setMinLargeMessageSize(25 * 1024);
-
-ClientSessionFactory factory = ActiveMQClient.createClientSessionFactory();</programlisting>
-            <para><xref linkend="configuring-transports.client.side"/> will provide more information
-                on how to instantiate the session factory.</para>
-        </section>
-        <section>
-            <title>Using JMS</title>
-            <para>If JNDI is used to instantiate and look up the connection factory, the minimum large message size
-                is configured in the JNDI context environment, e.g. <literal>jndi.properties</literal>. Here's a simple
-                example using the "ConnectionFactory" connection factory which is available in the context by default:</para>
-            <programlisting>
-java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
-java.naming.provider.url=tcp://localhost:5445
-connection.ConnectionFactory.minLargeMessageSize=250000
-            </programlisting>
-            <para>If the connection factory is being instantiated directly, the minimum large
-                message size is specified by <literal
-                    >ActiveMQConnectionFactory.setMinLargeMessageSize</literal>.</para>
-        </section>
-        <section>
-            <title>Compressed Large Messages</title>
-            <para>
-				You can choose to send large messages in compressed form using <literal>
-				compress-large-messages</literal> attributes.
-            </para>
-            <section>
-				<title><literal>compress-large-messages</literal></title>
-                <para>If you specify the boolean property <literal>compress-large-messages</literal> on
-                the <literal>server locator</literal> or <literal>ConnectionFactory</literal> as true, The
-                system will use the ZIP algorithm to compress the message body as the message is
-                transferred to the server's side. Notice that there's no special treatment at the
-                server's side, all the compressing and uncompressing is done at the client.</para>
-                <para>If the compressed size of a large message is below <literal>
-                min-large-message-size</literal>, it is sent to server as regular messages. This means
-			    that the message won't be written into the server's large-message
-			    data directory, thus reducing the disk I/O.</para>
-            </section>
-            <section>
-               <para>If JNDI is used to instantiate and look up the connection factory, large message compression can be
-                  configured in the JNDI context environment, e.g. <literal>jndi.properties</literal>. Here's a simple
-                  example using the "ConnectionFactory" connection factory which is available in the context by default:</para>
-               <programlisting>
-java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
-java.naming.provider.url=tcp://localhost:5445
-connection.ConnectionFactory.compressLargeMessages=true</programlisting>
-            </section>
-        </section>
-    </section>
-    <section>
-        <title>Streaming large messages</title>
-        <para>ActiveMQ supports setting the body of messages using input and output streams (<literal
-                >java.lang.io</literal>)</para>
-        <para>These streams are then used directly for sending (input streams) and receiving (output
-            streams) messages.</para>
-        <para>When receiving messages there are 2 ways to deal with the output stream; you may
-            choose to block while the output stream is recovered using the method <literal
-                >ClientMessage.saveOutputStream</literal> or alternatively using the method <literal
-                >ClientMessage.setOutputstream</literal> which will asynchronously write the message
-            to the stream. If you choose the latter the consumer must be kept alive until the
-            message has been fully received.</para>
-        <para>You can use any kind of stream you like. The most common use case is to send files
-            stored in your disk, but you could also send things like JDBC Blobs, <literal
-                >SocketInputStream</literal>, things you recovered from <literal
-                >HTTPRequests</literal> etc. Anything as long as it implements <literal
-                >java.io.InputStream</literal> for sending messages or <literal
-                >java.io.OutputStream</literal> for receiving them.</para>
-        <section>
-            <title>Streaming over Core API</title>
-            <para>The following table shows a list of methods available at <literal
-                    >ClientMessage</literal> which are also available through JMS by the use of
-                object properties.</para>
-            <table frame="topbot" id="large-messages.ClientMessageAPI">
-                <title>org.apache.activemq.api.core.client.ClientMessage API</title>
-                <tgroup cols="3">
-                    <colspec colname="Name" colnum="1"/>
-                    <colspec colname="Descr" colnum="2"/>
-                    <colspec colname="JMS" colnum="3"/>
-                    <thead>
-                        <row>
-                            <entry>Name</entry>
-                            <entry>Description</entry>
-                            <entry>JMS Equivalent Property</entry>
-                        </row>
-                    </thead>
-                    <tbody>
-                        <row>
-                            <entry>setBodyInputStream(InputStream)</entry>
-                            <entry>Set the InputStream used to read a message body when sending
-                                it.</entry>
-                            <entry>JMS_HQ_InputStream</entry>
-                        </row>
-                        <row>
-                            <entry>setOutputStream(OutputStream)</entry>
-                            <entry>Set the OutputStream that will receive the body of a message.
-                                This method does not block.</entry>
-                            <entry>JMS_HQ_OutputStream</entry>
-                        </row>
-                        <row>
-                            <entry>saveOutputStream(OutputStream)</entry>
-                            <entry>Save the body of the message to the <literal
-                                    >OutputStream</literal>. It will block until the entire content
-                                is transferred to the <literal>OutputStream</literal>.</entry>
-                            <entry>JMS_HQ_SaveStream</entry>
-                        </row>
-                    </tbody>
-                </tgroup>
-            </table>
-            <para>To set the output stream when receiving a core message: </para>
-            <programlisting>
-...
-ClientMessage msg = consumer.receive(...);
-
-
-// This will block here until the stream was transferred
-msg.saveOutputStream(someOutputStream); 
-
-ClientMessage msg2 = consumer.receive(...);
-
-// This will not wait the transfer to finish
-msg.setOutputStream(someOtherOutputStream); 
-...</programlisting>
-            <para> Set the input stream when sending a core message: </para>
-            <programlisting>
-...
-ClientMessage msg = session.createMessage();
-msg.setInputStream(dataInputStream);
-...</programlisting>
-            <para>Notice also that for messages with more than 2GiB the getBodySize() will return
-                invalid values since this is an integer (which is also exposed to the JMS API). On
-                those cases you can use the message property _HQ_LARGE_SIZE.</para>
-        </section>
-        <section id="large-messages.streaming.over.jms">
-            <title>Streaming over JMS</title>
-            <para>When using JMS, ActiveMQ maps the streaming methods on the core API (see <xref
-                    linkend="large-messages.ClientMessageAPI"/>) by setting object properties . You
-                can use the method <literal>Message.setObjectProperty</literal> to set the input and
-                output streams.</para>
-            <para>The <literal>InputStream</literal> can be defined through the JMS Object Property
-                JMS_HQ_InputStream on messages being sent:</para>
-            <programlisting>
-BytesMessage message = session.createBytesMessage();
-
-FileInputStream fileInputStream = new FileInputStream(fileInput);
-
-BufferedInputStream bufferedInput = new BufferedInputStream(fileInputStream);
-
-message.setObjectProperty("JMS_HQ_InputStream", bufferedInput);
-
-someProducer.send(message);</programlisting>
-            <para>The <literal>OutputStream</literal> can be set through the JMS Object Property
-                JMS_HQ_SaveStream on messages being received in a blocking way.</para>
-            <programlisting>
-BytesMessage messageReceived = (BytesMessage)messageConsumer.receive(120000);
-                
-File outputFile = new File("huge_message_received.dat");
-                
-FileOutputStream fileOutputStream = new FileOutputStream(outputFile);
-                
-BufferedOutputStream bufferedOutput = new BufferedOutputStream(fileOutputStream);
-                
-// This will block until the entire content is saved on disk
-messageReceived.setObjectProperty("JMS_HQ_SaveStream", bufferedOutput);</programlisting>
-            <para>Setting the <literal>OutputStream</literal> could also be done in a non blocking
-                way using the property JMS_HQ_OutputStream.</para>
-            <programlisting>
-// This won't wait the stream to finish. You need to keep the consumer active.
-messageReceived.setObjectProperty("JMS_HQ_OutputStream", bufferedOutput);</programlisting>
-            <note>
-                <para>When using JMS, Streaming large messages are only supported on <literal
-                        >StreamMessage</literal> and <literal>BytesMessage</literal>.</para>
-            </note>
-        </section>
-    </section>
-    <section>
-        <title>Streaming Alternative</title>
-        <para>If you choose not to use the <literal>InputStream</literal> or <literal
-                >OutputStream</literal> capability of ActiveMQ You could still access the data
-            directly in an alternative fashion.</para>
-        <para>On the Core API just get the bytes of the body as you normally would.</para>
-        <programlisting>
-ClientMessage msg = consumer.receive();
-         
-byte[] bytes = new byte[1024];
-for (int i = 0 ;  i &lt; msg.getBodySize(); i += bytes.length)
-{
-   msg.getBody().readBytes(bytes);
-   // Whatever you want to do with the bytes
-}</programlisting>
-        <para>If using JMS API, <literal>BytesMessage</literal> and <literal>StreamMessage</literal>
-            also supports it transparently.</para>
-        <programlisting>
-BytesMessage rm = (BytesMessage)cons.receive(10000);
-
-byte data[] = new byte[1024];
-
-for (int i = 0; i &lt; rm.getBodyLength(); i += 1024)
-{
-   int numberOfBytes = rm.readBytes(data);
-   // Do whatever you want with the data
-}        </programlisting>
-    </section>
-    <section id="large-messages.example">
-        <title>Large message example</title>
-        <para>Please see <xref linkend="examples.large-message"/> for an example which shows how
-            large message is configured and used with JMS.</para>
-    </section>
-</chapter>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/last-value-queues.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/last-value-queues.md b/docs/user-manual/en/last-value-queues.md
new file mode 100644
index 0000000..eca5eb5
--- /dev/null
+++ b/docs/user-manual/en/last-value-queues.md
@@ -0,0 +1,55 @@
+Last-Value Queues
+=================
+
+Last-Value queues are special queues which discard any messages when a
+newer message with the same value for a well-defined Last-Value property
+is put in the queue. In other words, a Last-Value queue only retains the
+last value.
+
+A typical example for Last-Value queue is for stock prices, where you
+are only interested by the latest value for a particular stock.
+
+Configuring Last-Value Queues
+=============================
+
+Last-value queues are defined in the address-setting configuration:
+
+    <address-setting match="jms.queue.lastValueQueue">
+       <last-value-queue>true</last-value-queue>
+    </address-setting>
+
+By default, `last-value-queue` is false. Address wildcards can be used
+to configure Last-Value queues for a set of addresses (see ?).
+
+Using Last-Value Property
+=========================
+
+The property name used to identify the last value is `"_HQ_LVQ_NAME"`
+(or the constant `Message.HDR_LAST_VALUE_NAME` from the Core API).
+
+For example, if two messages with the same value for the Last-Value
+property are sent to a Last-Value queue, only the latest message will be
+kept in the queue:
+
+    // send 1st message with Last-Value property set to STOCK_NAME
+    TextMessage message = session.createTextMessage("1st message with Last-Value property set");
+    message.setStringProperty("_HQ_LVQ_NAME", "STOCK_NAME");
+    producer.send(message);
+
+    // send 2nd message with Last-Value property set to STOCK_NAME             
+    message = session.createTextMessage("2nd message with Last-Value property set");
+    message.setStringProperty("_HQ_LVQ_NAME", "STOCK_NAME");
+    producer.send(message);
+           
+    ...
+           
+    // only the 2nd message will be received: it is the latest with 
+    // the Last-Value property set
+    TextMessage messageReceived = (TextMessage)messageConsumer.receive(5000);
+    System.out.format("Received message: %s\n", messageReceived.getText());
+
+Example
+=======
+
+See ? for an example which shows how last value queues are configured
+and used with JMS.

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/last-value-queues.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/last-value-queues.xml b/docs/user-manual/en/last-value-queues.xml
deleted file mode 100644
index f6f44b6..0000000
--- a/docs/user-manual/en/last-value-queues.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ============================================================================= -->
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more            -->
-<!-- contributor license agreements. See the NOTICE file distributed with          -->
-<!-- this work for additional information regarding copyright ownership.           -->
-<!-- The ASF licenses this file to You under the Apache License, Version 2.0       -->
-<!-- (the "License"); you may not use this file except in compliance with          -->
-<!-- the License. You may obtain a copy of the License at                          -->
-<!--                                                                               -->
-<!--     http://www.apache.org/licenses/LICENSE-2.0                                -->
-<!--                                                                               -->
-<!-- Unless required by applicable law or agreed to in writing, software           -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS,             -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.      -->
-<!-- See the License for the specific language governing permissions and           -->
-<!-- limitations under the License.                                                -->
-<!-- ============================================================================= -->
-
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "ActiveMQ_User_Manual.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="last-value-queues">
-   <title>Last-Value Queues</title>
-   <para>Last-Value queues are special queues which discard any messages when a newer message with
-      the same value for a well-defined Last-Value property is put in the queue. In other words, a
-      Last-Value queue only retains the last value.</para>
-   <para>A typical example for Last-Value queue is for stock prices, where you are only interested
-      by the latest value for a particular stock.</para>
-   <section>
-      <title>Configuring Last-Value Queues</title>
-      <para>Last-value queues are defined in the address-setting configuration:</para>
-      <programlisting>
-&lt;address-setting match="jms.queue.lastValueQueue">
-   &lt;last-value-queue>true&lt;/last-value-queue>
-&lt;/address-setting></programlisting>
-      <para>By default, <literal>last-value-queue</literal> is false. Address wildcards can be used
-         to configure Last-Value queues for a set of addresses (see <xref linkend="wildcard-syntax"
-         />).</para>
-   </section>
-   <section>
-      <title>Using Last-Value Property</title>
-      <para>The property name used to identify the last value is <literal>"_HQ_LVQ_NAME"</literal>
-         (or the constant <literal>Message.HDR_LAST_VALUE_NAME</literal> from the Core API).</para>
-      <para>For example, if two messages with the same value for the Last-Value property are sent to
-         a Last-Value queue, only the latest message will be kept in the queue:</para>
-      <programlisting>
-// send 1st message with Last-Value property set to STOCK_NAME
-TextMessage message = session.createTextMessage("1st message with Last-Value property set");
-message.setStringProperty("_HQ_LVQ_NAME", "STOCK_NAME");
-producer.send(message);
-
-// send 2nd message with Last-Value property set to STOCK_NAME             
-message = session.createTextMessage("2nd message with Last-Value property set");
-message.setStringProperty("_HQ_LVQ_NAME", "STOCK_NAME");
-producer.send(message);
-       
-...
-       
-// only the 2nd message will be received: it is the latest with 
-// the Last-Value property set
-TextMessage messageReceived = (TextMessage)messageConsumer.receive(5000);
-System.out.format("Received message: %s\n", messageReceived.getText());</programlisting>
-   </section>
-   <section>
-      <title>Example</title>
-      <para>See <xref linkend="examples.last-value-queue"/> for an example which shows how last
-         value queues are configured and used with JMS.</para>
-   </section>
-</chapter>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/libaio.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/libaio.md b/docs/user-manual/en/libaio.md
new file mode 100644
index 0000000..1e5f9ae
--- /dev/null
+++ b/docs/user-manual/en/libaio.md
@@ -0,0 +1,109 @@
+Libaio Native Libraries
+=======================
+
+ActiveMQ distributes a native library, used as a bridge between ActiveMQ
+and Linux libaio.
+
+`libaio` is a library, developed as part of the Linux kernel project.
+With `libaio` we submit writes to the operating system where they are
+processed asynchronously. Some time later the OS will call our code back
+when they have been processed.
+
+We use this in our high performance journal if configured to do so,
+please see ?.
+
+These are the native libraries distributed by ActiveMQ:
+
+-   libActiveMQAIO32.so - x86 32 bits
+
+-   libActiveMQAIO64.so - x86 64 bits
+
+When using libaio, ActiveMQ will always try loading these files as long
+as they are on the [library path](#using-server.library.path).
+
+Compiling the native libraries
+==============================
+
+In the case that you are using Linux on a platform other than x86\_32 or
+x86\_64 (for example Itanium 64 bits or IBM Power) you may need to
+compile the native library, since we do not distribute binaries for
+those platforms with the release.
+
+Install requirements
+--------------------
+
+> **Note**
+>
+> At the moment the native layer is only available on Linux. If you are
+> in a platform other than Linux the native compilation will not work
+
+The native library uses
+[autoconf](http://en.wikipedia.org/wiki/Autoconf) what makes the
+compilation process easy, however you need to install extra packages as
+a requirement for compilation:
+
+-   gcc - C Compiler
+
+-   gcc-c++ or g++ - Extension to gcc with support for C++
+
+-   autoconf - Tool for automating native build process
+
+-   make - Plain old make
+
+-   automake - Tool for automating make generation
+
+-   libtool - Tool for link editing native libraries
+
+-   libaio - library to disk asynchronous IO kernel functions
+
+-   libaio-dev - Compilation support for libaio
+
+-   A full JDK installed with the environment variable JAVA\_HOME set to
+    its location
+
+To perform this installation on RHEL or Fedora, you can simply type this
+at a command line:
+
+    sudo yum install automake libtool autoconf gcc-c++ gcc libaio libaio-devel make
+
+Or on Debian systems:
+
+    sudo apt-get install automake libtool autoconf gcc-g++ gcc libaio libaio-dev make
+
+> **Note**
+>
+> You could find a slight variation of the package names depending on
+> the version and Linux distribution. (for example gcc-c++ on Fedora
+> versus g++ on Debian systems)
+
+Invoking the compilation
+------------------------
+
+In the distribution, in the `native-src` directory, execute the shell
+script `bootstrap`. This script will invoke `automake` and `make` what
+will create all the make files and the native library.
+
+    someUser@someBox:/messaging-distribution/native-src$ ./bootstrap 
+    checking for a BSD-compatible install... /usr/bin/install -c
+    checking whether build environment is sane... yes
+    checking for a thread-safe mkdir -p... /bin/mkdir -p
+
+    ...
+
+    configure: creating ./config.status
+    config.status: creating Makefile
+    config.status: creating ./src/Makefile
+    config.status: creating config.h
+    config.status: config.h is unchanged
+    config.status: executing depfiles commands
+    config.status: executing libtool commands
+
+    ...
+
+The produced library will be at
+`./native-src/src/.libs/libActiveMQAIO.so`. Simply move that file over
+`bin` on the distribution or the place you have chosen on the [library
+path](#using-server.library.path).
+
+If you want to perform changes on the ActiveMQ libaio code, you could
+just call make directly at the `native-src` directory.

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/libaio.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/libaio.xml b/docs/user-manual/en/libaio.xml
deleted file mode 100644
index 75007ed..0000000
--- a/docs/user-manual/en/libaio.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ============================================================================= -->
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more            -->
-<!-- contributor license agreements. See the NOTICE file distributed with          -->
-<!-- this work for additional information regarding copyright ownership.           -->
-<!-- The ASF licenses this file to You under the Apache License, Version 2.0       -->
-<!-- (the "License"); you may not use this file except in compliance with          -->
-<!-- the License. You may obtain a copy of the License at                          -->
-<!--                                                                               -->
-<!--     http://www.apache.org/licenses/LICENSE-2.0                                -->
-<!--                                                                               -->
-<!-- Unless required by applicable law or agreed to in writing, software           -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS,             -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.      -->
-<!-- See the License for the specific language governing permissions and           -->
-<!-- limitations under the License.                                                -->
-<!-- ============================================================================= -->
-
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "ActiveMQ_User_Manual.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="libaio">
-    <title>Libaio Native Libraries</title>
-    <para>ActiveMQ distributes a native library, used as a bridge between ActiveMQ and Linux
-        libaio.</para>
-    <para><literal>libaio</literal> is a library, developed as part of the Linux kernel project.
-        With <literal>libaio</literal> we submit writes to the operating system where they are
-        processed asynchronously. Some time later the OS will call our code back when they have been
-        processed.</para>
-    <para>We use this in our high performance journal if configured to do so, please see <xref
-            linkend="persistence"/>.</para>
-    <para>These are the native libraries distributed by ActiveMQ:</para>
-    <itemizedlist>
-        <listitem>
-            <para>libActiveMQAIO32.so - x86 32 bits</para>
-        </listitem>
-        <listitem>
-            <para>libActiveMQAIO64.so - x86 64 bits</para>
-        </listitem>
-    </itemizedlist>
-    <para>When using libaio, ActiveMQ will always try loading these files as long as they are on the
-            <link linkend="using-server.library.path">library path</link>.</para>
-    <section>
-        <title>Compiling the native libraries</title>
-        <para>In the case that you are using Linux on a platform other than x86_32 or x86_64
-            (for example Itanium 64 bits or IBM Power) you may need to compile the native library, since we
-            do not distribute binaries for those platforms with the release.</para>
-        <section>
-            <title>Install requirements</title>
-            <note>
-                <para>At the moment the native layer is only available on Linux. If you are in a
-                    platform other than Linux the native compilation will not work</para>
-            </note>
-            <para>The native library uses <ulink url="http://en.wikipedia.org/wiki/Autoconf"
-                    >autoconf</ulink> what makes the compilation process easy, however you need to
-                install extra packages as a requirement for compilation:</para>
-            <itemizedlist>
-                <listitem>
-                    <para>gcc - C Compiler</para>
-                </listitem>
-                <listitem>
-                    <para>gcc-c++ or g++ - Extension to gcc with support for C++</para>
-                </listitem>
-                <listitem>
-                    <para>autoconf - Tool for automating native build process</para>
-                </listitem>
-                <listitem>
-                    <para>make - Plain old make</para>
-                </listitem>
-                <listitem>
-                    <para>automake - Tool for automating make generation</para>
-                </listitem>
-                <listitem>
-                    <para>libtool - Tool for link editing native libraries</para>
-                </listitem>
-                <listitem>
-                    <para>libaio - library to disk asynchronous IO kernel functions</para>
-                </listitem>
-                <listitem>
-                    <para>libaio-dev - Compilation support for libaio</para>
-                </listitem>
-                <listitem>
-                    <para>A full JDK installed with the environment variable JAVA_HOME set to its
-                        location</para>
-                </listitem>
-            </itemizedlist>
-            <para>To perform this installation on RHEL or Fedora, you can simply type this at a
-                command line:</para>
-            <programlisting>sudo yum install automake libtool autoconf gcc-c++ gcc libaio libaio-devel make</programlisting>
-            <para>Or on Debian systems:</para>
-            <programlisting>sudo apt-get install automake libtool autoconf gcc-g++ gcc libaio libaio-dev make</programlisting>
-            <note>
-                <para>You could find a slight variation of the package names depending on the
-                    version and Linux distribution. (for example gcc-c++ on Fedora versus g++ on
-                    Debian systems)</para>
-            </note>
-        </section>
-        <section>
-            <title>Invoking the compilation</title>
-            <para>In the distribution, in the <literal>native-src</literal> directory, execute the
-                shell script <literal>bootstrap</literal>. This script will invoke <literal
-                    >automake</literal> and <literal>make</literal> what will create all the make
-                files and the native library.</para>
-            <programlisting>someUser@someBox:/messaging-distribution/native-src$ ./bootstrap 
-checking for a BSD-compatible install... /usr/bin/install -c
-checking whether build environment is sane... yes
-checking for a thread-safe mkdir -p... /bin/mkdir -p
-
-...
-
-configure: creating ./config.status
-config.status: creating Makefile
-config.status: creating ./src/Makefile
-config.status: creating config.h
-config.status: config.h is unchanged
-config.status: executing depfiles commands
-config.status: executing libtool commands
-
-...</programlisting>
-            <para>The produced library will be at <literal
-                    >./native-src/src/.libs/libActiveMQAIO.so</literal>. Simply move that file over
-                    <literal>bin</literal> on the distribution or the place you have chosen on the
-                    <link linkend="using-server.library.path">library path</link>.</para>
-            <para>If you want to perform changes on the ActiveMQ libaio code, you could just call
-                make directly at the <literal>native-src</literal> directory.</para>
-        </section>
-    </section>
-</chapter>

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/logging.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/logging.md b/docs/user-manual/en/logging.md
new file mode 100644
index 0000000..32ef718
--- /dev/null
+++ b/docs/user-manual/en/logging.md
@@ -0,0 +1,93 @@
+Logging
+=======
+
+ActiveMQ uses the JBoss Logging framework to do its logging and is
+configurable via the `logging.properties` file found in the
+configuration directories. This is configured by Default to log to both
+the console and to a file.
+
+There are 6 loggers available which are as follows:
+
+  Logger                                      Logger Description
+  ------------------------------------------- ----------------------------------------------------
+  org.jboss.logging                           Logs any calls not handled by the ActiveMQ loggers
+  org.apache.activemq.core.server             Logs the core server
+  org.apache.activemq.utils                   Logs utility calls
+  org.apache.activemq.journal                 Logs Journal calls
+  org.apache.activemq.jms                     Logs JMS calls
+  org.apache.activemq.integration.bootstrap   Logs bootstrap calls
+
+  : Global Configuration Properties
+
+Logging in a client or with an Embedded server
+==============================================
+
+Firstly, if you want to enable logging on the client side you need to
+include the JBoss logging jars in your library. If you are using maven
+add the following dependencies.
+
+    <dependency>
+       <groupId>org.jboss.logmanager</groupId>
+       <artifactId>jboss-logmanager</artifactId>
+       <version>1.3.1.Final</version>
+    </dependency>
+    <dependency>
+       <groupId>org.apache.activemq</groupId>
+       <artifactId>activemq-core-client</artifactId>
+       <version>2.3.0.Final</version>
+    </dependency>
+
+There are 2 properties you need to set when starting your java program,
+the first is to set the Log Manager to use the JBoss Log Manager, this
+is done by setting the `-Djava.util.logging.manager` property i.e.
+`-Djava.util.logging.manager=org.jboss.logmanager.LogManager`
+
+The second is to set the location of the logging.properties file to use,
+this is done via the `-Dlogging.configuration` for instance
+`-Dlogging.configuration=file:///home/user/projects/myProject/logging.properties`.
+
+> **Note**
+>
+> The value for this needs to be valid URL
+
+The following is a typical `logging.properties for a client`
+
+    # Root logger option
+    loggers=org.jboss.logging,org.apache.activemq.core.server,org.apache.activemq.utils,org.apache.activemq.journal,org.apache.activemq.jms,org.apache.activemq.ra
+
+    # Root logger level
+    logger.level=INFO
+    # ActiveMQ logger levels
+    logger.org.apache.activemq.core.server.level=INFO
+    logger.org.apache.activemq.utils.level=INFO
+    logger.org.apache.activemq.jms.level=DEBUG
+
+    # Root logger handlers
+    logger.handlers=FILE,CONSOLE
+
+    # Console handler configuration
+    handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler
+    handler.CONSOLE.properties=autoFlush
+    handler.CONSOLE.level=FINE
+    handler.CONSOLE.autoFlush=true
+    handler.CONSOLE.formatter=PATTERN
+
+    # File handler configuration
+    handler.FILE=org.jboss.logmanager.handlers.FileHandler
+    handler.FILE.level=FINE
+    handler.FILE.properties=autoFlush,fileName
+    handler.FILE.autoFlush=true
+    handler.FILE.fileName=activemq.log
+    handler.FILE.formatter=PATTERN
+
+    # Formatter pattern configuration
+    formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
+    formatter.PATTERN.properties=pattern
+    formatter.PATTERN.pattern=%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n
+
+Logging With The JBoss Application Server
+=========================================
+
+When ActiveMQ is deployed within the JBoss Application Server version
+7.x or above then it will still use JBoss Logging, refer to the AS7
+documentation on how to configure AS7 logging.

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/logging.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/logging.xml b/docs/user-manual/en/logging.xml
deleted file mode 100644
index 8277b55..0000000
--- a/docs/user-manual/en/logging.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ============================================================================= -->
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more            -->
-<!-- contributor license agreements. See the NOTICE file distributed with          -->
-<!-- this work for additional information regarding copyright ownership.           -->
-<!-- The ASF licenses this file to You under the Apache License, Version 2.0       -->
-<!-- (the "License"); you may not use this file except in compliance with          -->
-<!-- the License. You may obtain a copy of the License at                          -->
-<!--                                                                               -->
-<!--     http://www.apache.org/licenses/LICENSE-2.0                                -->
-<!--                                                                               -->
-<!-- Unless required by applicable law or agreed to in writing, software           -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS,             -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.      -->
-<!-- See the License for the specific language governing permissions and           -->
-<!-- limitations under the License.                                                -->
-<!-- ============================================================================= -->
-
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "ActiveMQ_User_Manual.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="logging">
-    <title>Logging</title>
-    <para>ActiveMQ uses the JBoss Logging framework to do its logging and is configurable via the <literal>logging.properties</literal>
-       file found in the configuration directories. This is configured by Default to log to both the console and to a file.</para>
-   <para>There are 6 loggers available which are as follows:</para>
-    <table frame="topbot" border="2">
-       <title>Global Configuration Properties</title>
-       <tgroup cols="2">
-           <colspec colname="c1" colnum="1"/>
-           <colspec colname="c2" colnum="2"/>
-           <thead>
-               <row>
-                   <entry>Logger</entry>
-                   <entry>Logger Description</entry>
-               </row>
-           </thead>
-           <tbody>
-               <row>
-                   <entry>org.jboss.logging</entry>
-                   <entry>Logs any calls not handled by the ActiveMQ loggers</entry>
-               </row>
-               <row>
-                   <entry>org.apache.activemq.core.server</entry>
-                   <entry>Logs the core server</entry>
-               </row>
-               <row>
-                   <entry>org.apache.activemq.utils</entry>
-                   <entry>Logs utility calls</entry>
-               </row>
-               <row>
-                   <entry>org.apache.activemq.journal</entry>
-                   <entry>Logs Journal calls</entry>
-               </row>
-               <row>
-                   <entry>org.apache.activemq.jms</entry>
-                   <entry>Logs JMS calls</entry>
-               </row>
-               <row>
-                   <entry>org.apache.activemq.integration.bootstrap</entry>
-                   <entry>Logs bootstrap calls</entry>
-               </row>
-            </tbody>
-         </tgroup>
-       <para>you can configure the levels on these loggers independently in the appropriate <literal>logging.properties</literal>
-        file</para>
-   </table>
-   <section>
-      <title>Logging in a client or with an Embedded server</title>
-      <para>
-         Firstly, if you want to enable logging on the client side you need to include the JBoss logging jars in your library.
-         If you are using maven add the following dependencies.
-         <programlisting>
-&lt;dependency>
-   &lt;groupId>org.jboss.logmanager&lt;/groupId>
-   &lt;artifactId>jboss-logmanager&lt;/artifactId>
-   &lt;version>1.3.1.Final&lt;/version>
-&lt;/dependency>
-&lt;dependency>
-   &lt;groupId>org.apache.activemq&lt;/groupId>
-   &lt;artifactId>activemq-core-client&lt;/artifactId>
-   &lt;version>2.3.0.Final&lt;/version>
-&lt;/dependency></programlisting>
-      </para>
-      <para>
-         There are 2 properties you need to set when starting your java program, the first is to set the Log Manager to use
-         the JBoss Log Manager, this is done by setting the <literal>-Djava.util.logging.manager</literal> property i.e.
-         <literal>-Djava.util.logging.manager=org.jboss.logmanager.LogManager</literal>
-      </para>
-      <para>
-         The second is to set the location of the logging.properties file to use, this is done via the <literal>-Dlogging.configuration</literal>
-         for instance <literal>-Dlogging.configuration=file:///home/user/projects/myProject/logging.properties</literal>.
-         <note>The value for this needs to be valid URL</note>
-      </para>
-      <para>
-         The following is a typical <literal>logging.properties for a client</literal>
-         <programlisting>
-# Root logger option
-loggers=org.jboss.logging,org.apache.activemq.core.server,org.apache.activemq.utils,org.apache.activemq.journal,org.apache.activemq.jms,org.apache.activemq.ra
-
-# Root logger level
-logger.level=INFO
-# ActiveMQ logger levels
-logger.org.apache.activemq.core.server.level=INFO
-logger.org.apache.activemq.utils.level=INFO
-logger.org.apache.activemq.jms.level=DEBUG
-
-# Root logger handlers
-logger.handlers=FILE,CONSOLE
-
-# Console handler configuration
-handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler
-handler.CONSOLE.properties=autoFlush
-handler.CONSOLE.level=FINE
-handler.CONSOLE.autoFlush=true
-handler.CONSOLE.formatter=PATTERN
-
-# File handler configuration
-handler.FILE=org.jboss.logmanager.handlers.FileHandler
-handler.FILE.level=FINE
-handler.FILE.properties=autoFlush,fileName
-handler.FILE.autoFlush=true
-handler.FILE.fileName=activemq.log
-handler.FILE.formatter=PATTERN
-
-# Formatter pattern configuration
-formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
-formatter.PATTERN.properties=pattern
-formatter.PATTERN.pattern=%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n</programlisting>
-      </para>
-   </section>
-    <section>
-        <title>Logging With The JBoss Application Server</title>
-        <para>When ActiveMQ is deployed within the JBoss Application Server version 7.x or above then
-            it will still use JBoss Logging, refer to the AS7 documentation on how to configure AS7 logging.</para>
-    </section>
-</chapter>


Mime
View raw message