You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jo...@apache.org on 2010/01/14 17:55:57 UTC

svn commit: r899299 [1/3] - /qpid/trunk/qpid/doc/book/src/

Author: jonathan
Date: Thu Jan 14 16:55:54 2010
New Revision: 899299

URL: http://svn.apache.org/viewvc?rev=899299&view=rev
Log:
The next batch of converted documentation ...

Added:
    qpid/trunk/qpid/doc/book/src/AMQP compatibility.xml
    qpid/trunk/qpid/doc/book/src/Add New Users.xml
    qpid/trunk/qpid/doc/book/src/Configure ACLs.xml
    qpid/trunk/qpid/doc/book/src/Configure Java Qpid to use a SSL connection..xml
    qpid/trunk/qpid/doc/book/src/Configure Log4j CompositeRolling Appender.xml
    qpid/trunk/qpid/doc/book/src/Configure the Broker via config.xml.xml
    qpid/trunk/qpid/doc/book/src/Configure the Virtual Hosts via virtualhosts.xml.xml
    qpid/trunk/qpid/doc/book/src/Configuring Management Users.xml
    qpid/trunk/qpid/doc/book/src/Configuring Qpid JMX Management Console.xml
    qpid/trunk/qpid/doc/book/src/Debug using log4j.xml
    qpid/trunk/qpid/doc/book/src/How to Tune M3 Java Broker Performance.xml
    qpid/trunk/qpid/doc/book/src/Java Broker Feature Guide.xml
    qpid/trunk/qpid/doc/book/src/Java Environment Variables.xml
    qpid/trunk/qpid/doc/book/src/Management Console Security.xml
    qpid/trunk/qpid/doc/book/src/MessageStore Tool.xml
    qpid/trunk/qpid/doc/book/src/Qpid JMX Management Console FAQ.xml
    qpid/trunk/qpid/doc/book/src/Qpid JMX Management Console User Guide.xml
    qpid/trunk/qpid/doc/book/src/Qpid Java Broker Management CLI.xml
    qpid/trunk/qpid/doc/book/src/Qpid Java Build How To.xml
    qpid/trunk/qpid/doc/book/src/Qpid Java FAQ.xml
    qpid/trunk/qpid/doc/book/src/Qpid Management Features.xml
    qpid/trunk/qpid/doc/book/src/Qpid Troubleshooting Guide.xml
    qpid/trunk/qpid/doc/book/src/Use Priority Queues.xml
Modified:
    qpid/trunk/qpid/doc/book/src/AMQP-Messaging-Broker-Java.xml
    qpid/trunk/qpid/doc/book/src/Brokers.xml
    qpid/trunk/qpid/doc/book/src/schemas.xml

Added: qpid/trunk/qpid/doc/book/src/AMQP compatibility.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/AMQP%20compatibility.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/AMQP compatibility.xml (added)
+++ qpid/trunk/qpid/doc/book/src/AMQP compatibility.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,692 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml" id="AMQP-Compatibility">
+  <title>
+      Apache Qpid : AMQP compatibility
+    </title>
+  <para>
+            <emphasis>Qpid provides the most complete and compatible implementation
+            of AMQP. And is the most aggressive in implementing the latest
+            version of the specification. Qpid can be</emphasis> <emphasis><xref linkend="qpid_Download"/></emphasis>
+          </para>
+  <para>
+            There are two brokers:
+          </para>
+
+	  <itemizedlist>
+            <listitem><para>C++ with support for AMQP 0-10</para></listitem>
+            <listitem><para>Java with support for AMQP 0-8 and 0-9 (0-10 planned)</para></listitem>
+          </itemizedlist>
+  <para>
+            There are client libraries for C++, Java (JMS), .Net (written in
+            C#), python and ruby.
+          </para>
+  <itemizedlist>
+            <listitem><para>All clients support 0-10 and interoperate with the C++
+            broker.
+            </para></listitem>
+          </itemizedlist>
+  <itemizedlist>
+            <listitem><para>The JMS client supports 0-8, 0-9 and 0-10 and interoperates
+            with both brokers.
+            </para></listitem>
+          </itemizedlist>
+  <itemizedlist>
+            <listitem><para>The python and ruby clients will also support all versions,
+            but the API is dynamically driven by the specification used and
+            so differs between versions. To work with the Java broker you
+            must use 0-8 or 0-9, to work with the C++ broker you must use
+            0-10.
+            </para></listitem>
+          </itemizedlist>
+  <itemizedlist>
+            <listitem><para>There are two separate C# clients, one for 0-8 that
+            interoperates with the Java broker, one for 0-10 that
+            inteoperates with the C++ broker.
+            </para></listitem>
+          </itemizedlist>
+  <para>
+            QMF Management is supported in Ruby, Python, C++, and via QMan
+            for Java JMX &amp; WS-DM.
+          </para>
+  <section role="h3" id="AMQPcompatibility-AMQPCompatibilityofQpidreleases-3A">
+    <title>
+            AMQP
+            Compatibility of Qpid releases:
+          </title>
+  <para>
+            Qpid implements the AMQP Specification, and as the specification
+            has progressed Qpid is keeping up with the updates. This means
+            that different Qpid versions support different versions of AMQP.
+            Here is a simple guide on what use.
+          </para>
+	  <para>
+            Here is a matrix that describes the different versions supported
+            by each release. The status symbols are interpreted as follows:
+          </para>
+
+	  <variablelist>
+	    <varlistentry>
+	      <term>Y</term>
+	      <listitem><para>supported</para></listitem>
+	    </varlistentry>
+	    <varlistentry>
+	      <term>N</term>
+	      <listitem><para>unsupported</para></listitem>
+	    </varlistentry>
+	    <varlistentry>
+	      <term>IP</term>
+	      <listitem><para>in progress</para></listitem>
+	    </varlistentry>
+	    <varlistentry>
+	      <term>P</term>
+	      <listitem><para>planned</para></listitem>
+	    </varlistentry>
+	  </variablelist>
+	  
+  <table>
+    <title/>
+    <tgroup cols="6">
+            <tbody>
+              <row>
+                <entry>
+                  Component
+                </entry>
+                <entry>
+                  Spec
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                   
+                </entry>
+              </row>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  M2.1
+                </entry>
+                <entry>
+                  M3
+                </entry>
+                <entry>
+                  M4
+                </entry>
+                <entry>
+                  0.5
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  java client
+                </entry>
+                <entry>
+                  0-10
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  0-9
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  0-8
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  java broker
+                </entry>
+                <entry>
+                  0-10
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  P
+                </entry>
+              </row>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  0-9
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  0-8
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  c++ client/broker
+                </entry>
+                <entry>
+                  0-10
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  0-9
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                   
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  python client
+                </entry>
+                <entry>
+                  0-10
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  0-9
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  0-8
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  ruby client
+                </entry>
+                <entry>
+                  0-10
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  0-8
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  C# client
+                </entry>
+                <entry>
+                  0-10
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  0-8
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+            </tbody>
+          </tgroup>
+  </table>
+    <!--h3-->
+  </section>
+
+  <section role="h3" id="AMQPcompatibility-InteroptablebyAMQPspecificationversion">
+    <title>
+            Interop
+            table by AMQP specification version
+          </title>
+  <para>
+            Above table represented in another format.
+          </para>
+  <table>
+    <title/>
+    <tgroup cols="5">
+            <tbody>
+              <row>
+                <entry>
+                   
+                </entry>
+                <entry>
+                  release
+                </entry>
+                <entry>
+                  0-8
+                </entry>
+                <entry>
+                  0-9
+                </entry>
+                <entry>
+                  0-10
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  java client
+                </entry>
+                <entry>
+                  M3 M4 0.5
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  java client
+                </entry>
+                <entry>
+                  M2.1
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  N
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  java broker
+                </entry>
+                <entry>
+                  M3 M4 0.5
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  N
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  java broker
+                </entry>
+                <entry>
+                  trunk
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  P
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  java broker
+                </entry>
+                <entry>
+                  M2.1
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  N
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  c++ client/broker
+                </entry>
+                <entry>
+                  M3 M4 0.5
+                </entry>
+                <entry>
+                  N
+                </entry>
+                <entry>
+                  N
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  c++ client/broker
+                </entry>
+                <entry>
+                  M2.1
+                </entry>
+                <entry>
+                  N
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  N
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  python client
+                </entry>
+                <entry>
+                  M3 M4 0.5
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  python client
+                </entry>
+                <entry>
+                  M2.1
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  N
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  ruby client
+                </entry>
+                <entry>
+                  M3 M4 0.5
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  N
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  ruby client
+                </entry>
+                <entry>
+                  trunk
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  P
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  C# client
+                </entry>
+                <entry>
+                  M3 M4 0.5
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  N
+                </entry>
+                <entry>
+                  N
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  C# client
+                </entry>
+                <entry>
+                  trunk
+                </entry>
+                <entry>
+                  Y
+                </entry>
+                <entry>
+                  N
+                </entry>
+                <entry>
+                  Y
+                </entry>
+              </row>
+            </tbody>
+          </tgroup>
+  </table>
+    <!--h3-->
+  </section>
+
+</chapter>

Modified: qpid/trunk/qpid/doc/book/src/AMQP-Messaging-Broker-Java.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/AMQP-Messaging-Broker-Java.xml?rev=899299&r1=899298&r2=899299&view=diff
==============================================================================
--- qpid/trunk/qpid/doc/book/src/AMQP-Messaging-Broker-Java.xml (original)
+++ qpid/trunk/qpid/doc/book/src/AMQP-Messaging-Broker-Java.xml Thu Jan 14 16:55:54 2010
@@ -1,132 +1,36 @@
 <?xml version="1.0"?>
 <section>
-  <title>
-            General
-            User Guides
-          </title>
-  <itemizedlist>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java%20Broker%20Feature%20Guide.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Qpid%20Java%20FAQ.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Getting%20Started%20Guide.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java%20Environment%20Variables.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Qpid%20Troubleshooting%20Guide.html"/>
-      </para>
-    </listitem>
-  </itemizedlist>
-  <bridgehead id="AMQPMessagingBroker%28implementedinJava%29-HowTos"><anchor id="AMQPMessagingBroker%28implementedinJava%29-HowTos"/>How Tos
-          </bridgehead>
-  <itemizedlist>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Add%20New%20Users.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configure%20ACLs.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configure%20Java%20Qpid%20to%20use%20a%20SSL%20connection..html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configure%20Log4j%20CompositeRolling%20Appender.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configure%20the%20Broker%20via%20config.xml.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configure%20the%20Virtual%20Hosts%20via%20virtualhosts.xml.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Debug%20using%20log4j.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="How%20to%20Tune%20M3%20Java%20Broker%20Performance.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Qpid%20Java%20Build%20How%20To.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Use%20Priority%20Queues.html"/>
-      </para>
-    </listitem>
-  </itemizedlist>
-  <bridgehead id="AMQPMessagingBroker%28implementedinJava%29-ManagementTools"><anchor id="AMQPMessagingBroker%28implementedinJava%29-ManagementTools"/>Management
-            Tools
-          </bridgehead>
-  <itemizedlist>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Qpid%20JMX%20Management%20Console.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="MessageStore%20Tool.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Qpid%20Java%20Broker%20Management%20CLI.html"/>
-      </para>
-    </listitem>
-    <listitem>
-      <para>
-        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Management%20Design%20notes.html"/>
-      </para>
-    </listitem>
-  </itemizedlist>
-  <informaltable>
-    <tgroup cols="1">
-      <colspec colnum="1" colname="col1"/>
-      <thead>
-        <row>
-          <entry>
-            <anchor id="comment-5144724"/>
-            <para>
-                  Replaces <ulink url="http://cwiki.apache.org/confluence/display/qpid/Java+Broker">
-                  http://cwiki.apache.org/confluence/display/qpid/Java+Broker</ulink></para>
-            <para>
-                  Identical content, changing title and location.
-                </para>
-          </entry>
-        </row>
-      </thead>
-      <tbody/>
-    </tgroup>
-  </informaltable>
+<section>
+  <title>General User Guides</title>
+
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java%20Broker%20Feature%20Guide.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Qpid%20Java%20FAQ.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Java%20Environment%20Variables.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Qpid%20Troubleshooting%20Guide.xml"/>
+</section>
+
+<section  id="AMQPMessagingBroker%28implementedinJava%29-HowTos">
+<title>How Tos</title>
+
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Add%20New%20Users.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configure%20ACLs.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configure%20Java%20Qpid%20to%20use%20a%20SSL%20connection..xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configure%20Log4j%20CompositeRolling%20Appender.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configure%20the%20Broker%20via%20config.xml.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configure%20the%20Virtual%20Hosts%20via%20virtualhosts.xml.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Debug%20using%20log4j.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="How%20to%20Tune%20M3%20Java%20Broker%20Performance.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Qpid%20Java%20Build%20How%20To.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Use%20Priority%20Queues.xml"/>
+</section>
+
+<section id="AMQPMessagingBroker%28implementedinJava%29-ManagementTools">
+<title>Management Tools</title>
+
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Qpid%20JMX%20Management%20Console.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="MessageStore%20Tool.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Qpid%20Java%20Broker%20Management%20CLI.xml"/>
+        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Management%20Design%20notes.xml"/>
+
+</section>
 </section>

Added: qpid/trunk/qpid/doc/book/src/Add New Users.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Add%20New%20Users.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Add New Users.xml (added)
+++ qpid/trunk/qpid/doc/book/src/Add New Users.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml"><title>
+      Apache Qpid : Add New Users
+    </title><para>
+            The Qpid Java Broker has a single reference source (<xref linkend="qpid_PrincipalDatabase"/>) that
+            defines all the users in the system.
+          </para><para>
+            To add a new user to the broker the password file must be
+            updated. The details about adding entries and when these updates
+            take effect are dependent on the file format each of which are
+            described below.
+          </para>
+
+	  <section role="h2" id="AddNewUsers-AvailablePasswordfileformats"><title>
+            Available
+            Password file formats
+          </title>
+	  <para>
+            There are currently two different file formats available for use
+            depending on the PrincipalDatabase that is desired. In all cases
+            the clients need not be aware of the type of PrincipalDatabase in
+            use they only need support the SASL mechanisms they provide.
+          </para><itemizedlist>
+            <listitem><para>
+              <xref linkend="AddNewUsers-plain"/>
+            </para></listitem>
+            <listitem><para>
+              <xref linkend="AddNewUsers-base64md5"/>
+            </para></listitem>
+          </itemizedlist><para>
+            
+          </para>
+
+	  <section role="h3" id="AddNewUsers-Plain"><title>
+            Plain
+          </title>
+	  <para>
+            The plain file has the following format:
+          </para>
+            <programlisting>
+# Plain password authentication file.
+# default name : passwd
+# Format &lt;username&gt;:&lt;password&gt;
+#e.g.
+martin:password
+</programlisting>
+          <para>
+            As the contents of the file are plain text and the password is
+            taken to be everything to the right of the ':'(colon). The
+            password, therefore, cannot contain a ':' colon, but this can be
+            used to delimit the password.
+          </para><para>
+            Lines starting with a '#' are treated as comments.
+          </para>
+<!--h3--></section>
+
+	  <section role="h3" id="AddNewUsers-Whereisthepasswordfileformybroker-3F"><title>
+            Where is
+            the password file for my broker ?
+          </title>
+	  <para>
+            The location of the password file in use for your broker is as
+            configured in your config.xml file.
+          </para>
+            <programlisting>
+&lt;principal-databases&gt;
+            &lt;principal-database&gt;
+                &lt;name&gt;passwordfile&lt;/name&gt;
+                &lt;class&gt;org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase&lt;/class&gt;
+                &lt;attributes&gt;
+                    &lt;attribute&gt;
+                        &lt;name&gt;passwordFile&lt;/name&gt;
+                        &lt;value&gt;${conf}/passwd&lt;/value&gt;
+                    &lt;/attribute&gt;
+                &lt;/attributes&gt;
+            &lt;/principal-database&gt;
+        &lt;/principal-databases&gt;
+</programlisting>
+          <para>
+            So in the example config.xml file this password file lives in the
+            directory specified as the conf directory (at the top of your
+            config.xml file).
+          </para><para>
+            If you wish to use Base64 encoding for your password file, then
+            in the &lt;class&gt; element above you should specify
+            org.apache.qpid.server.security.auth.database.Base64MD5PasswordFilePrincipalDatabase
+          </para><para>
+            The default is:
+          </para>
+            <programlisting>
+ &lt;conf&gt;${prefix}/etc&lt;/conf&gt;
+</programlisting>
+<!--h3--></section>
+
+
+	  <section role="h3" id="AddNewUsers-Base64MD5PasswordFileFormat"><title>
+            Base64MD5
+            Password File Format
+          </title>
+	  <para>
+            This format can be used to ensure that SAs cannot read the plain
+            text password values from your password file on disk.
+          </para><para>
+            The Base64MD5 file uses the following format:
+          </para>
+            <programlisting>
+# Base64MD5 password authentication file
+# default name : qpid.passwd
+# Format &lt;username&gt;:&lt;Base64 Encoded MD5 hash of the users password&gt;
+#e.g.
+martin:X03MO1qnZdYdgyfeuILPmQ==
+</programlisting>
+          <para>
+            As with the Plain format the line is delimited by a ':'(colon).
+            The password field contains the MD5 Hash of the users password
+            encoded in Base64.
+          </para><para>
+            This file is read on broker start-up and is not re-read.
+          </para>
+<!--h3--></section>
+
+	  <section role="h3" id="AddNewUsers-HowcanIupdateaBase64MD5passwordfile-3F"><title>
+            How can
+            I update a Base64MD5 password file ?
+          </title>
+	  <para>
+            To update the file there are two options:
+          </para><orderedlist>
+            <listitem><para>Edit the file by hand using the <emphasis>qpid-passwd</emphasis> tool
+            that will generate the required lines. The output from the tool
+            is the text that needs to be copied in to your active password
+            file. This tool is located in the broker bin directory.
+              Eventually it is planned for this tool to emulate the
+              functionality of <xref linkend="qpid_htpasswd"/>
+              for qpid passwd files.
+              <emphasis>NOTE:</emphasis> For the changes to be seen by the broker you must
+              either restart the broker or reload the data with the
+              management tools (see <xref linkend="qpid_Qpid-20JMX-20Management-20Console-20User-20Guide"/>)
+            </para></listitem>
+            <listitem><para>Use the management tools to create a new user. The changes
+            will be made by the broker to the password file and the new user
+            will be immediately available to the system (see <xref linkend="qpid_Qpid-20JMX-20Management-20Console-20User-20Guide"/>).
+            </para></listitem>
+          </orderedlist>
+<!--h3--></section>
+<!--h2--></section>
+	  
+
+	  <section role="h2" id="AddNewUsers-Dynamicchangestopasswordfiles."><title>
+            Dynamic
+            changes to password files.
+          </title>
+	  <para>
+            The Plain password file and the Base64MD5 format file are both
+            only read once on start up.
+          </para><para>
+            To make changes dynamically there are two options, both require
+            administrator access via the Management Console (see <xref linkend="qpid_Qpid-20JMX-20Management-20Console-20User-20Guide"/>)
+          </para><orderedlist>
+            <listitem><para>You can replace the file and use the console to reload its
+            contents.
+            </para></listitem>
+            <listitem><para>The management console provides an interface to create,
+            delete and amend the users. These changes are written back to the
+            active password file.
+            </para></listitem>
+          </orderedlist>
+<!--h2--></section>
+
+	  <section role="h2" id="AddNewUsers-HowpasswordfilesandPrincipalDatabasesrelatetoauthenticationmechanisms"><title>
+            How password files and PrincipalDatabases relate to
+            authentication mechanisms
+          </title>
+	  <para>
+            For each type of password file a PrincipalDatabase exists that
+            parses the contents. These PrincipalDatabases load various SASL
+            mechanism based on their supportability. e.g. the Base64MD5 file
+            format can't support Plain authentication as the plain password
+            is not available. Any client connecting need only be concerned
+            about the SASL module they support and not the type of
+            PrincipalDatabase. So I client that understands CRAM-MD5 will
+            work correctly with a Plain and Base64MD5 PrincipalDatabase.
+          </para><table><title/><tgroup cols="2">
+            <tbody>
+              <row>
+                <entry>
+                  FileFormat/PrincipalDatabase
+                </entry>
+                <entry>
+                  SASL
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  Plain
+                </entry>
+                <entry>
+                  AMQPLAIN PLAIN CRAM-MD5
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  Base64MD5
+                </entry>
+                <entry>
+                  CRAM-MD5 CRAM-MD5-HASHED
+                </entry>
+              </row>
+            </tbody>
+          </tgroup></table><para>
+            For details of SASL support see <xref linkend="qpid_Qpid-20Interoperability-20Documentation"/>
+          </para>
+<!--h2--></section>
+
+</chapter>

Modified: qpid/trunk/qpid/doc/book/src/Brokers.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Brokers.xml?rev=899299&r1=899298&r2=899299&view=diff
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Brokers.xml (original)
+++ qpid/trunk/qpid/doc/book/src/Brokers.xml Thu Jan 14 16:55:54 2010
@@ -9,7 +9,7 @@
       <listitem><para>Implemented in Java - Fully JMS compliant, runs on any Java platform.</para></listitem>
     </itemizedlist>
 
-    <para>Both AMQP messaging brokers support clients in multiple languages, as long as the messaging client and the messaging broker use the same version of AMQP. See <link linkend="###AMQP-Compatibility"/> to see which messaging clients work with each broker.</para>
+    <para>Both AMQP messaging brokers support clients in multiple languages, as long as the messaging client and the messaging broker use the same version of AMQP. See <link linkend="AMQP-Compatibility"/> to see which messaging clients work with each broker.</para>
   </partintro>
 
   <xi:include href="AMQP-Messaging-Broker-CPP.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>

Added: qpid/trunk/qpid/doc/book/src/Configure ACLs.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Configure%20ACLs.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Configure ACLs.xml (added)
+++ qpid/trunk/qpid/doc/book/src/Configure ACLs.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+  <title>
+      Apache Qpid : Configure ACLs
+    </title>
+  <section role="h2" id="ConfigureACLs-ConfigureACLs">
+    <title>
+            Configure ACLs
+          </title>
+  <section role="h3" id="ConfigureACLs-Specification">
+    <title>
+            Specification
+          </title>
+  <itemizedlist>
+            <listitem><para>
+              <xref linkend="qpid_Java-20XML-20ACLs"/>
+            </para></listitem>
+            <listitem><para>
+              <xref linkend="qpid_ACL"/>
+            </para></listitem>
+          </itemizedlist>
+
+    <!--h3-->
+  </section>
+
+  <section role="h3" id="ConfigureACLs-CBroker">
+    <title>
+            C++ Broker
+          </title>
+  <para>
+            The C++ broker supports <xref linkend="qpid_ACL"/> of the ACLs
+          </para>
+
+    <!--h3-->
+  </section>
+
+  <section role="h3" id="ConfigureACLs-JavaBroker">
+    <title>
+            Java Broker
+          </title>
+
+	  <itemizedlist>
+            <listitem><para>
+              <xref linkend="qpid_Java-20XML-20ACLs"/>
+            </para></listitem>
+            <listitem><para>Support for Version 2 specification is in progress.
+            </para></listitem>
+          </itemizedlist>
+
+	  <!--h3-->
+  </section>
+
+  <!--h2-->
+  </section>
+
+</chapter>

Added: qpid/trunk/qpid/doc/book/src/Configure Java Qpid to use a SSL connection..xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Configure%20Java%20Qpid%20to%20use%20a%20SSL%20connection..xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Configure Java Qpid to use a SSL connection..xml (added)
+++ qpid/trunk/qpid/doc/book/src/Configure Java Qpid to use a SSL connection..xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml"><title>
+      Apache Qpid : Configure Java Qpid to use a SSL connection.
+    </title>
+
+    <section role="h2" id="ConfigureJavaQpidtouseaSSLconnection.-UsingSSLconnectionwithQpidJava."><title>
+            Using SSL connection with Qpid Java.
+          </title>
+	  <para>
+            This section will show how to use SSL to enable secure
+            connections between a Java client and broker.
+          </para>
+<!--h2--></section>
+    <section role="h2" id="ConfigureJavaQpidtouseaSSLconnection.-Setup"><title>
+            Setup
+          </title>
+    <section role="h3" id="ConfigureJavaQpidtouseaSSLconnection.-BrokerSetup"><title>
+            Broker
+            Setup
+          </title>
+	  <para>
+            The broker configuration file (config.xml) needs to be updated to
+            include the SSL keystore location details.
+          </para>
+                        
+<programlisting>
+&lt;!-- Additions required to Connector Section --&gt;
+
+&lt;ssl&gt;
+    &lt;enabled&gt;true&lt;/enabled&gt;
+    &lt;sslOnly&gt;true&lt;/sslOnly&gt;
+    &lt;keystorePath&gt;/path/to/keystore.ks&lt;/keystorePath&gt;
+    &lt;keystorePassword&gt;keystorepass&lt;/keystorePassword&gt;
+&lt;/ssl&gt;
+</programlisting>
+            
+          <para>
+            The sslOnly option is included here for completeness however this
+            will disable the unencrypted port and leave only the SSL port
+            listening for connections.
+          </para>
+<!--h3--></section>
+    <section role="h3" id="ConfigureJavaQpidtouseaSSLconnection.-ClientSetup"><title>
+            Client
+            Setup
+          </title>
+	  <para>
+            The best place to start looking is class
+            <emphasis>SSLConfiguration</emphasis> this is provided to the connection
+            during creation however there is currently no example that
+            demonstrates its use.
+          </para>
+<!--h3--></section>
+<!--h2--></section>
+
+    <section role="h2" id="ConfigureJavaQpidtouseaSSLconnection.-Performingtheconnection."><title>
+            Performing
+            the connection.
+          </title>
+	  <para/>
+    <!--h2--></section>
+</chapter>

Added: qpid/trunk/qpid/doc/book/src/Configure Log4j CompositeRolling Appender.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Configure%20Log4j%20CompositeRolling%20Appender.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Configure Log4j CompositeRolling Appender.xml (added)
+++ qpid/trunk/qpid/doc/book/src/Configure Log4j CompositeRolling Appender.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml"><title>
+      Apache Qpid : Configure Log4j CompositeRolling Appender
+    </title>
+    <section role="h2" id="ConfigureLog4jCompositeRollingAppender-HowtoconfiguretheCompositeRollinglog4jAppender"><title>
+            How to configure the CompositeRolling log4j Appender
+          </title>
+	  <para>
+            There are several sections of our default log4j file that will
+            need your attention if you wish to fully use this Appender.
+          </para>
+
+	  <orderedlist>
+	    <listitem>
+	  <para>Enable the Appender</para>
+	  <para>
+            The default log4j.xml file uses the FileAppender, swap this for
+            the ArchivingFileAppender as follows:
+          </para>
+            <programlisting>
+    &lt;!-- Log all info events to file --&gt;
+    &lt;root&gt;
+        &lt;priority value="info"/&gt;
+
+        &lt;appender-ref ref="ArchivingFileAppender"/&gt;
+    &lt;/root&gt;
+</programlisting>
+	    </listitem>
+	    <listitem>
+          <para>
+            Configure the Appender
+          </para>
+
+	  <para>
+            The Appender has a number of parameters that can be adjusted
+            depending on what you are trying to achieve. For clarity lets
+            take a quick look at the complete default appender:
+          </para>
+            <programlisting>
+  &lt;appender name="ArchivingFileAppender" class="org.apache.log4j.QpidCompositeRollingAppender"&gt;
+        &lt;!-- Ensure that logs allways have the dateFormat set--&gt;
+        &lt;param name="StaticLogFileName" value="false"/&gt;
+        &lt;param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/&gt;
+        &lt;param name="Append" value="false"/&gt;
+        &lt;!-- Change the direction so newer files have bigger numbers --&gt;
+        &lt;!-- So log.1 is written then log.2 etc This prevents a lot of file renames at log rollover --&gt;
+        &lt;param name="CountDirection" value="1"/&gt;
+        &lt;!-- Use default 10MB --&gt;
+        &lt;!--param name="MaxFileSize" value="100000"/--&gt;
+        &lt;param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm"/&gt;
+        &lt;!-- Unlimited number of backups --&gt;
+        &lt;param name="MaxSizeRollBackups" value="-1"/&gt;
+        &lt;!-- Compress(gzip) the backup files--&gt;
+        &lt;param name="CompressBackupFiles" value="true"/&gt;
+        &lt;!-- Compress the backup files using a second thread --&gt;
+        &lt;param name="CompressAsync" value="true"/&gt;
+        &lt;!-- Start at zero numbered files--&gt;
+        &lt;param name="ZeroBased" value="true"/&gt;
+        &lt;!-- Backup Location --&gt;
+        &lt;param name="backupFilesToPath" value="${QPID_WORK}/backup/log"/&gt;
+
+        &lt;layout class="org.apache.log4j.PatternLayout"&gt;
+            &lt;param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/&gt;
+        &lt;/layout&gt;
+    &lt;/appender&gt;
+</programlisting>
+          <para>
+            The appender configuration has three groups of parameter
+            configuration.
+          </para><para>
+            The first group is for configuration of the file name. The
+            default is to write a log file to QPID_WORK/log/qpid.log
+            (Remembering you can use the logprefix and logsuffix values to
+            modify the file name, see Property Config).
+          </para>
+            <programlisting>
+        &lt;!-- Ensure that logs always have the dateFormat set--&gt;
+        &lt;param name="StaticLogFileName" value="false"/&gt;
+        &lt;param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/&gt;
+        &lt;param name="Append" value="false"/&gt;
+</programlisting>
+          <para>
+            The second section allows the specification of a Maximum File
+            Size and a DatePattern that will be used to move on to the next
+            file.
+          </para><para>
+            When MaxFileSize is reached a new log file will be created
+            The DataPattern is used to decide when to create a new log file,
+            so here a new file will be created for every minute and every
+            10Meg of data. So if 15MB of data is made every minute then there
+            will be two log files created each minute. One at the start of
+            the minute and a second when the file hit 10MB. When the next
+            minute arrives a new file will be made even though it only has
+            5MB of content. For a production system it would be expected to
+            be changed to something like 'yyyy-MM-dd' which would make a new
+            log file each day and keep the files to a max of 10MB.
+          </para><para>
+            The final MaxSizeRollBackups allows you to limit the amount of
+            disk you are using by only keeping the last n backups.
+          </para>
+            <programlisting>
+        &lt;!-- Change the direction so newer files have bigger numbers --&gt;
+        &lt;!-- So log.1 is written then log.2 etc This prevents a lot of file renames at log rollover --&gt;
+        &lt;param name="CountDirection" value="1"/&gt;
+        &lt;!-- Use default 10MB --&gt;
+        &lt;!--param name="MaxFileSize" value="100000"/--&gt;
+        &lt;param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm"/&gt;
+        &lt;!-- Unlimited number of backups --&gt;
+        &lt;param name="MaxSizeRollBackups" value="-1"/&gt;
+</programlisting>
+          <para>
+            The final section allows the old log files to be compressed and
+            copied to a new location.
+          </para>
+            <programlisting>
+        &lt;!-- Compress(gzip) the backup files--&gt;
+        &lt;param name="CompressBackupFiles" value="true"/&gt;
+        &lt;!-- Compress the backup files using a second thread --&gt;
+        &lt;param name="CompressAsync" value="true"/&gt;
+        &lt;!-- Start at zero numbered files--&gt;
+        &lt;param name="ZeroBased" value="true"/&gt;
+        &lt;!-- Backup Location --&gt;
+        &lt;param name="backupFilesToPath" value="${QPID_WORK}/backup/log"/&gt;
+</programlisting>
+</listitem>
+</orderedlist>
+<!--h2--></section>
+</chapter>

Added: qpid/trunk/qpid/doc/book/src/Configure the Broker via config.xml.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Configure%20the%20Broker%20via%20config.xml.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Configure the Broker via config.xml.xml (added)
+++ qpid/trunk/qpid/doc/book/src/Configure the Broker via config.xml.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+  <title>
+      Apache Qpid : Configure the Broker via config.xml
+    </title>
+  <section role="h2" id="ConfiguretheBrokerviaconfig.xml-Brokerconfig.xmlOverview">
+    <title>
+            Broker
+            config.xml Overview
+          </title>
+  <para>
+            The broker config.xml file which is shipped in the etc directory
+            of any Qpid binary distribution details various options and
+            configuration for the Java Qpid broker implementation.
+          </para>
+  <para>
+            In tandem with the virtualhosts.xml file, the config.xml file
+            allows you to control much of the deployment detail for your Qpid
+            broker in a flexible fashion.
+          </para>
+  <para>
+            Note that you can pass the config.xml you wish to use for your
+            broker instance to the broker using the -c command line option.
+            In turn, you can specify the paths for the broker password file
+            and virtualhosts.xml files in your config.xml for simplicity.
+          </para>
+  <para>
+            For more information about command line configuration options
+            please see <xref linkend="QpidDesign-Configuration-ConfigurationMethods"/>.
+          </para>
+    <!--h2-->
+  </section>
+
+  <section role="h2" id="ConfiguretheBrokerviaconfig.xml-QpidVersion">
+    <title>
+            Qpid
+            Version
+          </title>
+  <para>
+            The config format has changed between versions here you can find
+            the configuration details on a per version basis.
+          </para>
+  <para>
+            <xref linkend="qpid_M2-20--20config.xml"/>
+            <xref linkend="qpid_M2.1-20--20config.xml"/>
+          </para>
+    <!--h2-->
+  </section>
+
+</chapter>

Added: qpid/trunk/qpid/doc/book/src/Configure the Virtual Hosts via virtualhosts.xml.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Configure%20the%20Virtual%20Hosts%20via%20virtualhosts.xml.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Configure the Virtual Hosts via virtualhosts.xml.xml (added)
+++ qpid/trunk/qpid/doc/book/src/Configure the Virtual Hosts via virtualhosts.xml.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml"><title>
+      Apache Qpid : Configure the Virtual Hosts via virtualhosts.xml
+    </title><section role="h2" id="ConfiguretheVirtualHostsviavirtualhosts.xml-virtualhosts.xmlOverview"><title>
+            virtualhosts.xml Overview
+          </title>
+	 <para>
+            This configuration file contains details of all queues and
+            topics, and associated properties, to be created on broker
+            startup. These details are configured on a per virtual host
+            basis.
+          </para><para>
+            Note that if you do not add details of a queue or topic you
+            intend to use to this file, you must first create a consumer on a
+            queue/topic before you can publish to it using Qpid.
+          </para><para>
+            Thus most application deployments need a virtualhosts.xml file
+            with at least some minimal detail.
+          </para>
+
+	  <section role="h3" id="ConfiguretheVirtualHostsviavirtualhosts.xml-XMLFormatwithComments"><title>
+            XML Format with Comments
+          </title>
+	 <para>
+            The virtualhosts.xml which currently ships as part of the Qpid
+            distribution is really targeted at development use, and supports
+            various artifacts commonly used by the Qpid development team.
+          </para><para>
+            As a result, it is reasonably complex. In the example XML below,
+            I have tried to simplify one example virtual host setup which is
+            possibly more useful for new users of Qpid or development teams
+            looking to simply make use of the Qpid broker in their
+            deployment.
+          </para><para>
+            I have also added some inline comments on each section, which
+            should give some extra information on the purpose of the various
+            elements.
+          </para>
+
+	  
+
+            <programlisting>
+&lt;virtualhosts&gt;
+    &lt;!-- Sets the default virtual host for connections which do not specify a vh --&gt;
+    &lt;default&gt;localhost&lt;/default&gt;
+    &lt;!-- Define a virtual host and all it's config --&gt;
+    &lt;virtualhost&gt;
+        &lt;name&gt;localhost&lt;/name&gt;
+        &lt;localhost&gt;    
+            &lt;!-- Define the types of additional AMQP exchange available for this vh --&gt;   
+            &lt;!-- Always get amq.direct (for queues) and amq.topic (for topics) by default --&gt;     
+            &lt;exchanges&gt;
+                &lt;!-- Example of declaring an additional exchanges type for developer use only --&gt;
+                &lt;exchange&gt;
+                    &lt;type&gt;direct&lt;/type&gt;
+                    &lt;name&gt;test.direct&lt;/name&gt;
+                    &lt;durable&gt;true&lt;/durable&gt;
+                &lt;/exchange&gt;
+            &lt;/exchanges&gt;
+             
+            &lt;!-- Define the set of queues to be created at broker startup --&gt;
+            &lt;queues&gt;
+                &lt;!-- The properties configured here will be applied as defaults to all --&gt;
+                &lt;!-- queues subsequently defined unless explicitly overridden --&gt;
+                &lt;exchange&gt;amq.direct&lt;/exchange&gt;
+                &lt;!-- Set threshold values for queue monitor alerting to log --&gt; 
+                &lt;maximumQueueDepth&gt;4235264&lt;/maximumQueueDepth&gt;  &lt;!-- 4Mb --&gt;
+                &lt;maximumMessageSize&gt;2117632&lt;/maximumMessageSize&gt; &lt;!-- 2Mb --&gt;
+                &lt;maximumMessageAge&gt;600000&lt;/maximumMessageAge&gt;  &lt;!-- 10 mins --&gt;
+
+                &lt;!-- Define a queue with all default settings --&gt;   
+                &lt;queue&gt;
+                    &lt;name&gt;ping&lt;/name&gt;
+                &lt;/queue&gt;
+                &lt;!-- Example definitions of queues with overriden settings --&gt;
+                &lt;queue&gt;
+                    &lt;name&gt;test-queue&lt;/name&gt;
+                    &lt;test-queue&gt;
+                        &lt;exchange&gt;test.direct&lt;/exchange&gt;
+                        &lt;durable&gt;true&lt;/durable&gt;
+                    &lt;/test-queue&gt;
+                &lt;/queue&gt;
+                &lt;queue&gt;
+                    &lt;name&gt;test-ping&lt;/name&gt;
+                    &lt;test-ping&gt;
+                        &lt;exchange&gt;test.direct&lt;/exchange&gt;
+                    &lt;/test-ping&gt;
+                &lt;/queue&gt;
+            &lt;/queues&gt;
+        &lt;/localhost&gt;
+    &lt;/virtualhost&gt;
+&lt;/virtualhosts&gt;
+</programlisting>
+<!--h3--></section>
+          <section role="h3" id="ConfiguretheVirtualHostsviavirtualhosts.xml-Usingyourownvirtualhosts.xml"><title>
+            Using your own virtualhosts.xml
+          </title>
+	 
+	  <para>
+            Note that the config.xml file shipped as an example (or developer
+            default) in the Qpid distribution contains an element which
+            defines the path to the virtualhosts.xml.
+          </para><para>
+            When using your own virtualhosts.xml you must edit this path to
+            point at the location of your file.
+          </para>
+<!--h3--></section>
+<!--h2--></section>
+</chapter>

Added: qpid/trunk/qpid/doc/book/src/Configuring Management Users.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Configuring%20Management%20Users.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Configuring Management Users.xml (added)
+++ qpid/trunk/qpid/doc/book/src/Configuring Management Users.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml"><title>
+      Apache Qpid : Configuring Management Users
+    </title><para>
+            The Qpid Java broker has a single source of users for the system.
+            So a user can connect to the broker to send messages and via the
+            JMX console to check the state of the broker.
+          </para><para>
+            
+          </para>
+
+	  <section role="h2" id="ConfiguringManagementUsers-Addinganewmanagementuser"><title>
+            Adding
+            a new management user
+          </title>
+	  <para>
+            The broker does have some minimal configuration available to
+            limit which users can connect to the JMX console and what they
+            can do when they are there.
+          </para><para>
+            There are two steps required to add a new user with rights for
+            the JMX console.
+          </para><orderedlist>
+            <listitem><para>Create a new user login, see HowTo:<xref linkend="qpid_Add-20New-20Users"/>
+            </para></listitem>
+            <listitem><para>Grant the new user permission to the JMX Console
+            </para></listitem>
+          </orderedlist>
+
+	  <section role="h3" id="ConfiguringManagementUsers-GrantingJMXConsolePermissions"><title>
+            Granting
+            JMX Console Permissions
+          </title>
+	  <para>
+            By default new users do not have access to the JMX console. The
+            access to the console is controlled via the file
+            <emphasis>jmxremote.access</emphasis>.
+          </para><para>
+            This file contains a mapping from user to privilege.
+          </para><para>
+            There are three privileges available:
+          </para><orderedlist>
+            <listitem><para>readonly - The user is able to log in and view queues but not
+            make any changes.
+            </para></listitem>
+            <listitem><para>readwrite - Grants user ability to read and write queue
+            attributes such as alerting values.
+            </para></listitem>
+            <listitem><para>admin - Grants the user full access including ability to edit
+            Users and JMX Permissions in addition to readwrite access.
+            </para></listitem>
+          </orderedlist><para>
+            This file is read at start up and can forcibly be reloaded by an
+            admin user through the management console.
+          </para>
+<!--h3--></section>
+
+	  <section role="h3" id="ConfiguringManagementUsers-AccessFileFormat"><title>
+            Access
+            File Format
+          </title>
+	  <para>
+            The file is a standard Java properties file and has the following
+            format
+          </para>
+            <programlisting>
+&lt;username&gt;=&lt;privilege&gt;
+</programlisting>
+          <para>
+            If the username value is not a valid user (list in the specified
+            PrincipalDatabase) then the broker will print a warning when it
+            reads the file as that entry will have no meaning.
+          </para><para>
+            Only when the the username exists in both the access file and the
+            PrincipalDatabase password file will the user be able to login
+            via the JMX Console.
+          </para><section role="h4" id="ConfiguringManagementUsers-ExampleFile"><title>
+            Example File
+          </title>
+	  <para>
+            The file will be timestamped by the management console if edited
+            through the console.
+          </para>
+            <programlisting>
+#Generated by JMX Console : Last edited by user:admin
+#Tue Jun 12 16:46:39 BST 2007
+admin=admin
+guest=readonly
+user=readwrite
+</programlisting>
+
+<!--h4--></section>
+<!--h3--></section>
+<!--h2--></section>
+</chapter>

Added: qpid/trunk/qpid/doc/book/src/Configuring Qpid JMX Management Console.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Configuring%20Qpid%20JMX%20Management%20Console.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Configuring Qpid JMX Management Console.xml (added)
+++ qpid/trunk/qpid/doc/book/src/Configuring Qpid JMX Management Console.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml"><title>
+      Apache Qpid : Configuring Qpid JMX Management Console
+    </title><section role="h2" id="ConfiguringQpidJMXManagementConsole-ConfiguringQpidJMXManagementConsole"><title>
+            Configuring Qpid JMX Management Console
+          </title>
+
+	  <para>
+            Qpid has a JMX management interface that exposes a number of
+            components of the running broker.
+            You can find out more about the features exposed by the JMX
+            interfaces <xref linkend="qpid_Qpid-20Management-20Features"/>.
+          </para><para>
+            
+          </para>
+
+	  <section role="h3" id="ConfiguringQpidJMXManagementConsole-InstallingtheQpidJMXManagementConsole"><title>
+            Installing the Qpid JMX Management Console
+          </title>
+
+	 <orderedlist>
+            <listitem><para>Unzip the archive to a suitable location.</para>
+
+	    <note><title>SSL encrypted connections</title>
+                      <para>
+                        Recent versions of the broker can make use of SSL to
+                        encrypt their RMI based JMX connections. If a broker
+                        being connected to is making use of this ability then
+                        additional console configuration may be required,
+                        particularly when using self-signed certificates. See
+                        <xref linkend="qpid_Management-20Console-20Security"/> for details.
+                      </para>
+	    </note>
+	  </listitem>
+          </orderedlist>
+
+	  <note>
+	    <title>JMXMP based connections</title>
+	    <para>
+	      In previous releases of Qpid (M4 and below) the broker
+	      JMX connections could make use of the JMXMPConnector for
+	      additional security over its default RMI based JMX
+	      configuration. This is no longer the case, with SSL
+	      encrypted RMI being the favored approach going forward.
+	      However, if you wish to connect to an older broker using
+	      JMXMP the console will support this so long as the
+	      <emphasis>jmxremote_optional.jar</emphasis> file is provided to it.
+	      For details see <xref linkend="qpid_Management-20Console-20Security"/>.
+	    </para>
+	  </note>
+<!--h3--></section>
+
+          
+	  <section role="h3" id="ConfiguringQpidJMXManagementConsole-RunningtheQpidJMXManagementConsole"><title>
+            Running the Qpid JMX Management Console
+          </title>
+
+	 <para>
+            The console can be started in the following way, depending on
+            platform:
+          </para><itemizedlist>
+            <listitem><para>Windows: by running the 'qpidmc.exe' executable file.
+            </para></listitem>
+          </itemizedlist><itemizedlist>
+            <listitem><para>Linux: by running the 'qpidmc' executable.
+            </para></listitem>
+          </itemizedlist><itemizedlist>
+            <listitem><para>Mac OS X: by launching the consoles application bundle (.app
+            file).
+            </para></listitem>
+          </itemizedlist>
+<!--h3--></section>
+
+
+	  <section role="h3" id="ConfiguringQpidJMXManagementConsole-UsingtheQpidJMXManagementConsole"><title>
+            Using the Qpid JMX Management Console
+          </title>
+
+	 <para>
+            Please see <xref linkend="qpid_Qpid-20JMX-20Management-20Console-20User-20Guide"/> for details on using this Eclipse RCP
+            application.
+          </para>
+
+<!--h3--></section>
+<!--h2--></section>
+
+	  <section role="h2" id="ConfiguringQpidJMXManagementConsole-UsingJConsole"><title>
+            Using
+            JConsole
+          </title>
+
+	 <para>
+            See <xref linkend="qpid_JConsole"/>
+          </para>
+<!--h2--></section>
+
+
+	  <section role="h2" id="ConfiguringQpidJMXManagementConsole-UsingHermesJMS"><title>
+            Using
+            HermesJMS
+          </title>
+
+	 <para>
+            HermesJMS also offers integration with the Qpid management
+            interfaces. You can get instructions and more information from
+            <xref linkend="qpid_HermesJMS"/>.
+          </para>
+<!--h2--></section>
+
+	  <section role="h2" id="ConfiguringQpidJMXManagementConsole-UsingMC4J"><title>
+            Using
+            MC4J
+          </title>
+
+	 <para>
+            <xref linkend="qpid_www.mc4j.org"/> is an alternative
+            management tool. It provide a richer "dashboard" that can
+            customise the raw MBeans.
+          </para>
+	  <section role="h4" id="ConfiguringQpidJMXManagementConsole-Installation"><title>
+            Installation
+          </title>
+
+	 <itemizedlist>
+            <listitem><para>First download and install MC4J for your platform. Version
+            1.2 beta 9 is the latest version that has been tested.
+            </para></listitem>
+            <listitem><para>Copy the directory blaze/java/management/mc4j into
+            the directory &lt;MC4J-Installation&gt;/dashboards
+            </para></listitem>
+          </itemizedlist>
+<!--h4--></section>
+
+	  <section role="h4" id="ConfiguringQpidJMXManagementConsole-Configuration"><title>
+            Configuration
+          </title>
+
+	 <para>
+            You should create a connection the JVM to be managed. Using the
+            Management-&gt;Create Server Connection menu option. The
+            connection URL should be of the form:
+            service:jmx:rmi:///jndi/rmi://localhost:8999/jmxrmi
+            making the appropriate host and post changes.
+          </para>
+<!--h4--></section>
+
+	  <section role="h4" id="ConfiguringQpidJMXManagementConsole-Operation"><title>
+            Operation
+          </title>
+
+	 <para>
+            You can view tabular summaries of the queues, exchanges and
+            connections using the Global Dashboards-&gt;QPID tree view. To
+            drill down on individual beans you can right click on the bean.
+            This will show any available graphs too.
+          </para>
+<!--h4--></section>
+<!--h2--></section>
+</chapter>

Added: qpid/trunk/qpid/doc/book/src/Debug using log4j.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Debug%20using%20log4j.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Debug using log4j.xml (added)
+++ qpid/trunk/qpid/doc/book/src/Debug using log4j.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml"><title>
+      Apache Qpid : Debug using log4j
+    </title>
+
+    <section role="h2" id="Debugusinglog4j-Debuggingwithlog4jconfigurations"><title>
+            Debugging
+            with log4j configurations
+          </title>
+	 <para>
+            Unfortunately setting of logging in the Java Broker is not simply
+            a matter of setting one of WARN,INFO,DEBUG. At some point in the
+            future we may have more BAU logging that falls in to that
+            category but more likely is that we will have a varioius config
+            files that can be swapped in (dynamically) to understand what is
+            going on.
+          </para><para>
+            This page will be host to a variety of useful configuration
+            setups that will allow a user or developer to extract only the
+            information they are interested in logging. Each section will be
+            targeted at logging in a particular area and will include a full
+            log4j file that can be used. In addition the logging
+            <emphasis>category</emphasis> elements will be presented and discussed so
+            that the user can create their own file.
+          </para><para>
+            Currently the configuration that is available has not been fully
+            documented and as such there are gaps in what is desired and what
+            is available. Some times this is due to the desire to reduce the
+            overhead in message processing, but sometimes it is simply an
+            oversight. Hopefully in future releases the latter will be
+            addressed but care needs to be taken when adding logging to the
+            'Message Flow' path as this will have performance implications.
+          </para>
+
+	  <section role="h3" id="Debugusinglog4j-LoggingConnectionState-5CDeprecated-5C"><title>
+            Logging
+            Connection State *Deprecated*
+          </title>
+	 <para>
+            <emphasis>deprecation notice</emphasis> Version 0.6 of the Java broker includes
+            <xref linkend="qpid_Configure-20Operational-20Status-20Logging"/> functionality which improves upon these messages and
+            as such enabling status logging would be more beneficial.
+            The configuration file has been left here for assistence with
+            broker versions prior to 0.6.
+          </para><para>
+            The goals of this configuration are to record:
+          </para><itemizedlist>
+            <listitem><para>New Connections
+            </para></listitem>
+            <listitem><para>New Consumers
+            </para></listitem>
+            <listitem><para>Identify slow consumers
+            </para></listitem>
+            <listitem><para>Closing of Consumers
+            </para></listitem>
+            <listitem><para>Closing of Connections
+            </para></listitem>
+          </itemizedlist><para>
+            An additional goal of this configuration is to minimise any
+            impact to the 'message flow' path. So it should not adversely
+            affect production systems.
+          </para>
+<programlisting>
+<![CDATA[
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+    <appender name="FileAppender" class="org.apache.log4j.FileAppender">
+        <param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/>
+        <param name="Append" value="false"/>
+
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
+        </layout>
+
+    </appender>
+
+    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
+
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
+        </layout>
+    </appender>
+
+    <category name="Qpid.Broker">
+
+        <priority value="debug"/>
+    </category>
+
+
+    <!-- Provide warnings to standard output -->
+    <category name="org.apache.qpid">
+        <priority value="warn"/>
+    </category>
+
+
+    <!-- Connection Logging -->
+
+    <!-- Log details of client starting connection -->
+    <category name="org.apache.qpid.server.handler.ConnectionStartOkMethodHandler">
+        <priority value="info"/>
+    </category>
+    <!-- Log details of client closing connection -->
+    <category name="org.apache.qpid.server.handler.ConnectionCloseMethodHandler">
+        <priority value="info"/>
+    </category>
+    <!-- Log details of client responding to be asked to closing connection -->
+
+    <category name="org.apache.qpid.server.handler.ConnectionCloseOkMethodHandler">
+        <priority value="info"/>
+    </category>
+
+
+    <!-- Consumer Logging -->
+    <!-- Provide details of Consumers connecting-->
+    <category name="org.apache.qpid.server.handler.BasicConsumeMethodHandler">
+        <priority value="debug"/>
+    </category>
+
+    <!-- Provide details of Consumers disconnecting, if the call it-->
+    <category name="org.apache.qpid.server.handler.BasicCancelMethodHandler">
+        <priority value="debug"/>
+    </category>
+    <!-- Provide details of when a channel closes to attempt to match to the Consume as a Cancel is not always issued-->
+    <category name="org.apache.qpid.server.handler.ChannelCloseHandler">
+        <priority value="info"/>
+    </category>
+
+    <!-- Provide details of Consumers starting to consume-->
+    <category name="org.apache.qpid.server.handler.ChannelFlowHandler">
+        <priority value="debug"/>
+    </category>
+    <!-- Provide details of what consumers are going to be consuming-->
+    <category name="org.apache.qpid.server.handler.QueueBindHandler">
+        <priority value="info"/>
+    </category>
+
+    <!-- No way of determining if publish message is returned, client log should show it.-->
+
+    <root>
+        <priority value="debug"/>
+        <appender-ref ref="STDOUT"/>      
+        <appender-ref ref="FileAppender"/>
+    </root>
+
+</log4j:configuration>
+]]>
+</programlisting>
+	  <!--h3--></section>
+
+	  <section role="h3" id="Debugusinglog4j-DebuggingMyApplication"><title>
+            Debugging My
+            Application
+          </title>
+	 <para>
+            This is the most often asked for set of configuration. The goals
+            of this configuration are to record:
+          </para><itemizedlist>
+            <listitem><para>New Connections
+            </para></listitem>
+            <listitem><para>New Consumers
+            </para></listitem>
+            <listitem><para>Message Publications
+            </para></listitem>
+            <listitem><para>Message Consumption
+            </para></listitem>
+            <listitem><para>Identify slow consumers
+            </para></listitem>
+            <listitem><para>Closing of Consumers
+            </para></listitem>
+            <listitem><para>Closing of Connections
+            </para></listitem>
+          </itemizedlist><para>
+            NOTE: This configuration enables message logging on the 'message
+            flow' path so should only be used were message volume is
+            low.
+            <emphasis>Every message that is sent to the broker will generate at
+            least four logging statements</emphasis>
+          </para>
+<programlisting>
+<![CDATA[
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+    <appender name="FileAppender" class="org.apache.log4j.FileAppender">
+        <param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/>
+        <param name="Append" value="false"/>
+
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
+        </layout>
+
+    </appender>
+
+    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
+
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
+        </layout>
+    </appender>
+
+    <category name="Qpid.Broker">
+
+        <priority value="debug"/>
+    </category>
+
+
+    <!-- Provide warnings to standard output -->
+    <category name="org.apache.qpid">
+        <priority value="warn"/>
+    </category>
+
+
+    <!-- Connection Logging -->
+
+    <!-- Log details of client starting connection -->
+    <category name="org.apache.qpid.server.handler.ConnectionStartOkMethodHandler">
+        <priority value="info"/>
+    </category>
+    <!-- Log details of client closing connection -->
+    <category name="org.apache.qpid.server.handler.ConnectionCloseMethodHandler">
+        <priority value="info"/>
+    </category>
+    <!-- Log details of client responding to be asked to closing connection -->
+
+    <category name="org.apache.qpid.server.handler.ConnectionCloseOkMethodHandler">
+        <priority value="info"/>
+    </category>
+
+    <!-- Consumer Logging -->
+    <!-- Provide details of Consumers connecting-->
+    <category name="org.apache.qpid.server.handler.BasicConsumeMethodHandler">
+        <priority value="debug"/>
+    </category>
+
+    <!-- Provide details of Consumers disconnecting, if the call it-->
+    <category name="org.apache.qpid.server.handler.BasicCancelMethodHandler">
+        <priority value="debug"/>
+    </category>
+    <!-- Provide details of when a channel closes to attempt to match to the Consume as a Cancel is not always issued-->
+    <category name="org.apache.qpid.server.handler.ChannelCloseHandler">
+        <priority value="info"/>
+    </category>
+
+    <!-- Provide details of Consumers starting to consume-->
+    <category name="org.apache.qpid.server.handler.ChannelFlowHandler">
+        <priority value="debug"/>
+    </category>
+    <!-- Provide details of what consumers are going to be consuming-->
+    <category name="org.apache.qpid.server.handler.QueueBindHandler">
+        <priority value="info"/>
+    </category>
+
+    <!-- No way of determining if publish message is returned, client log should show it.-->
+
+    <!-- WARNING DO NOT ENABLE THIS IN PRODUCTION -->
+    <!-- Will generate minimum one log statements per published message -->
+    <!-- Will generate will log receiving of all body frame, count will vary on size of message.-->
+    <!-- Empty Message = no body, Body is up to 64kb of data -->
+    <!-- Will generate three log statements per recevied message -->
+
+    <!-- Log messages flow-->
+    <category name="org.apache.qpid.server.AMQChannel">
+
+        <priority value="debug"/>
+    </category>
+
+    <root>
+        <priority value="debug"/>
+        <appender-ref ref="STDOUT"/>      
+        <appender-ref ref="FileAppender"/>
+    </root>
+
+</log4j:configuration>
+]]>
+</programlisting>
+
+<!--h3--></section>            
+<!--h2--></section>
+</chapter>

Added: qpid/trunk/qpid/doc/book/src/How to Tune M3 Java Broker Performance.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/How%20to%20Tune%20M3%20Java%20Broker%20Performance.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/How to Tune M3 Java Broker Performance.xml (added)
+++ qpid/trunk/qpid/doc/book/src/How to Tune M3 Java Broker Performance.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+  <title>
+      Apache Qpid : How to Tune M3 Java Broker Performance
+    </title>
+  <section role="h3" id="HowtoTuneM3JavaBrokerPerformance-ProblemStatement">
+    <title>
+            Problem
+            Statement
+          </title>
+  <para>
+            During destructive testing of the Qpid M3 Java Broker, we tested
+            some tuning techniques and deployment changes to improve the Qpid
+            M3 Java Broker's capacity to maintain high levels of throughput,
+            particularly in the case of a slower consumer than produceer
+            (i.e. a growing backlog).
+          </para>
+  <para>
+            The focus of this page is to detail the results of tuning &amp;
+            deployment changes trialled.
+          </para>
+  <para>
+            The successful tuning changes are applicable for any deployment
+            expecting to see bursts of high volume throughput (1000s of
+            persistent messages in large batches). Any user wishing to use
+            these options <emphasis>must test them thoroughly in their own
+            environment with representative volumes</emphasis>.
+          </para>
+  <!--h3-->
+  </section>
+
+  <section role="h3" id="HowtoTuneM3JavaBrokerPerformance-SuccessfulTuningOptions">
+    <title>
+            Successful
+            Tuning Options
+          </title>
+  <para>
+            The key scenario being taregetted by these changes is a broker
+            under heavy load (processing a large batch of persistent
+            messages)can be seen to perform slowly when filling up with an
+            influx of high volume transient messages which are queued behind
+            the persistent backlog. However, the changes suggested will be
+            equally applicable to general heavy load scenarios.
+          </para>
+  <para>
+            The easiest way to address this is to separate streams of
+            messages. Thus allowing the separate streams of messages to be
+            processed, and preventing a backlog behind a particular slow
+            consumer.
+          </para>
+  <para>
+            These strategies have been successfully tested to mitigate this
+            problem:
+          </para>
+  <table>
+    <title/>
+    <tgroup cols="2">
+            <tbody>
+              <row>
+                <entry>
+                  Strategy
+                </entry>
+                <entry>
+                  Result
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  Seperate connections to one broker for separate streams of
+                  messages.
+                </entry>
+                <entry>
+                  Messages processed successfully, no problems experienced
+                </entry>
+              </row>
+              <row>
+                <entry>
+                  Seperate brokers for transient and persistent messages.
+                </entry>
+                <entry>
+                  Messages processed successfully, no problems experienced
+                </entry>
+              </row>
+            </tbody>
+          </tgroup>
+  </table>
+  <para>
+            <emphasis>Separate Connections</emphasis>
+            Using separate connections effectively means that the two streams
+            of data are not being processed via the same buffer, and thus the
+            broker gets &amp; processes the transient messages while
+            processing the persistent messages. Thus any build up of
+            unprocessed data is minimal and transitory.
+          </para>
+  <para>
+            <emphasis>Separate Brokers</emphasis>
+            Using separate brokers may mean more work in terms of client
+            connection details being changed, and from an operational
+            perspective. However, it is certainly the most clear cut way of
+            isolating the two streams of messages and the heaps impacted.
+          </para>
+  <section role="h4" id="HowtoTuneM3JavaBrokerPerformance-Additionaltuning">
+    <title>
+            Additional
+            tuning
+          </title>
+  <para>
+            It is worth testing if changing the size of the Qpid read/write
+            thread pool improves performance (eg. by setting
+            JAVA_OPTS="-Damqj.read_write_pool_size=32" before running
+            qpid-server). By default this is equal to the number of CPU
+            cores, but a higher number may show better performance with some
+            work loads.
+          </para>
+  <para>
+            It is also important to note that you should give the Qpid broker
+            plenty of memory - for any serious application at least a -Xmx of
+            3Gb. If you are deploying on a 64 bit platform, a larger heap is
+            definitely worth testing with. We will be testing tuning options
+            around a larger heap shortly.
+          </para>
+    <!--h4-->
+  </section>
+    <!--h3-->
+  </section>
+
+  <section role="h3" id="HowtoTuneM3JavaBrokerPerformance-NextSteps">
+    <title>
+            Next
+            Steps
+          </title>
+  <para>
+            These two options have been testing using a Qpid test case, and
+            demonstrated that for a test case with a profile of persistent
+            heavy load following by constant transient high load traffic they
+            provide significant improvment.
+          </para>
+  <para>
+            However, the deploying project <emphasis>must</emphasis> complete their own
+            testing, using the same destructive test cases, representative
+            message paradigms &amp; volumes, in order to verify the proposed
+            mitigation options.
+          </para>
+  <para>
+            The using programme should then choose the option most applicable
+            for their deployment and perform BAU testing before any
+            implementation into a production or pilot environment.
+          </para>
+    <!--h3-->
+  </section>
+</chapter>

Added: qpid/trunk/qpid/doc/book/src/Java Broker Feature Guide.xml
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/doc/book/src/Java%20Broker%20Feature%20Guide.xml?rev=899299&view=auto
==============================================================================
--- qpid/trunk/qpid/doc/book/src/Java Broker Feature Guide.xml (added)
+++ qpid/trunk/qpid/doc/book/src/Java Broker Feature Guide.xml Thu Jan 14 16:55:54 2010
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+  <title>
+      Apache Qpid : Java Broker Feature Guide
+    </title>
+  <section role="h3" id="JavaBrokerFeatureGuide-TheQpidpureJavabrokercurrentlysupportsthefollowingfeatures-3A">
+    <title>
+            The Qpid pure Java broker currently supports the following
+            features:
+          </title>
+  <itemizedlist>
+            <listitem><para>All features required by the Sun JMS 1.1 specification, fully
+            tested
+            </para></listitem>
+            <listitem><para>Transaction support
+            </para></listitem>
+            <listitem><para>Persistence using a pluggable layer
+            </para></listitem>
+            <listitem><para>Pluggable security using SASL
+            </para></listitem>
+            <listitem><para>Management using JMX and an Eclipse Management Console
+            application
+            </para></listitem>
+            <listitem><para>High performance header-based routing for messages
+            </para></listitem>
+            <listitem><para>Message Priorities
+            </para></listitem>
+            <listitem><para>Configurable logging and log archiving
+            </para></listitem>
+            <listitem><para>Threshold alerting
+            </para></listitem>
+            <listitem><para>ACLs
+            </para></listitem>
+            <listitem><para>Extensively tested on each release, including performance
+            &amp; reliability testing
+            </para></listitem>
+            <listitem><para>Automatic client failover using configurable connection
+            properties
+            </para></listitem>
+            <listitem><para>Durable Queues/Subscriptions
+            </para></listitem>
+          </itemizedlist>
+  <section role="h3" id="JavaBrokerFeatureGuide-Upcomingfeatures-3A">
+    <title>
+            Upcoming
+            features:
+          </title>
+  <itemizedlist>
+            <listitem><para>Flow To Disk
+            </para></listitem>
+            <listitem><para>IP Whitelist
+            </para></listitem>
+            <listitem><para>AMQP 0-10 Support (for interoperability)
+            </para></listitem>
+          </itemizedlist>
+
+    <!--h3-->
+  </section>
+
+    <!--h3-->
+  </section>
+
+</chapter>



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org