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 & 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 <username>:<password>
+#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>
+<principal-databases>
+ <principal-database>
+ <name>passwordfile</name>
+ <class>org.apache.qpid.server.security.auth.database.PlainPasswordFilePrincipalDatabase</class>
+ <attributes>
+ <attribute>
+ <name>passwordFile</name>
+ <value>${conf}/passwd</value>
+ </attribute>
+ </attributes>
+ </principal-database>
+ </principal-databases>
+</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 <class> element above you should specify
+ org.apache.qpid.server.security.auth.database.Base64MD5PasswordFilePrincipalDatabase
+ </para><para>
+ The default is:
+ </para>
+ <programlisting>
+ <conf>${prefix}/etc</conf>
+</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 <username>:<Base64 Encoded MD5 hash of the users password>
+#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>
+<!-- Additions required to Connector Section -->
+
+<ssl>
+ <enabled>true</enabled>
+ <sslOnly>true</sslOnly>
+ <keystorePath>/path/to/keystore.ks</keystorePath>
+ <keystorePassword>keystorepass</keystorePassword>
+</ssl>
+</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>
+ <!-- Log all info events to file -->
+ <root>
+ <priority value="info"/>
+
+ <appender-ref ref="ArchivingFileAppender"/>
+ </root>
+</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>
+ <appender name="ArchivingFileAppender" class="org.apache.log4j.QpidCompositeRollingAppender">
+ <!-- Ensure that logs allways have the dateFormat set-->
+ <param name="StaticLogFileName" value="false"/>
+ <param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/>
+ <param name="Append" value="false"/>
+ <!-- Change the direction so newer files have bigger numbers -->
+ <!-- So log.1 is written then log.2 etc This prevents a lot of file renames at log rollover -->
+ <param name="CountDirection" value="1"/>
+ <!-- Use default 10MB -->
+ <!--param name="MaxFileSize" value="100000"/-->
+ <param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm"/>
+ <!-- Unlimited number of backups -->
+ <param name="MaxSizeRollBackups" value="-1"/>
+ <!-- Compress(gzip) the backup files-->
+ <param name="CompressBackupFiles" value="true"/>
+ <!-- Compress the backup files using a second thread -->
+ <param name="CompressAsync" value="true"/>
+ <!-- Start at zero numbered files-->
+ <param name="ZeroBased" value="true"/>
+ <!-- Backup Location -->
+ <param name="backupFilesToPath" value="${QPID_WORK}/backup/log"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
+ </layout>
+ </appender>
+</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>
+ <!-- Ensure that logs always have the dateFormat set-->
+ <param name="StaticLogFileName" value="false"/>
+ <param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/>
+ <param name="Append" value="false"/>
+</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>
+ <!-- Change the direction so newer files have bigger numbers -->
+ <!-- So log.1 is written then log.2 etc This prevents a lot of file renames at log rollover -->
+ <param name="CountDirection" value="1"/>
+ <!-- Use default 10MB -->
+ <!--param name="MaxFileSize" value="100000"/-->
+ <param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm"/>
+ <!-- Unlimited number of backups -->
+ <param name="MaxSizeRollBackups" value="-1"/>
+</programlisting>
+ <para>
+ The final section allows the old log files to be compressed and
+ copied to a new location.
+ </para>
+ <programlisting>
+ <!-- Compress(gzip) the backup files-->
+ <param name="CompressBackupFiles" value="true"/>
+ <!-- Compress the backup files using a second thread -->
+ <param name="CompressAsync" value="true"/>
+ <!-- Start at zero numbered files-->
+ <param name="ZeroBased" value="true"/>
+ <!-- Backup Location -->
+ <param name="backupFilesToPath" value="${QPID_WORK}/backup/log"/>
+</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>
+<virtualhosts>
+ <!-- Sets the default virtual host for connections which do not specify a vh -->
+ <default>localhost</default>
+ <!-- Define a virtual host and all it's config -->
+ <virtualhost>
+ <name>localhost</name>
+ <localhost>
+ <!-- Define the types of additional AMQP exchange available for this vh -->
+ <!-- Always get amq.direct (for queues) and amq.topic (for topics) by default -->
+ <exchanges>
+ <!-- Example of declaring an additional exchanges type for developer use only -->
+ <exchange>
+ <type>direct</type>
+ <name>test.direct</name>
+ <durable>true</durable>
+ </exchange>
+ </exchanges>
+
+ <!-- Define the set of queues to be created at broker startup -->
+ <queues>
+ <!-- The properties configured here will be applied as defaults to all -->
+ <!-- queues subsequently defined unless explicitly overridden -->
+ <exchange>amq.direct</exchange>
+ <!-- Set threshold values for queue monitor alerting to log -->
+ <maximumQueueDepth>4235264</maximumQueueDepth> <!-- 4Mb -->
+ <maximumMessageSize>2117632</maximumMessageSize> <!-- 2Mb -->
+ <maximumMessageAge>600000</maximumMessageAge> <!-- 10 mins -->
+
+ <!-- Define a queue with all default settings -->
+ <queue>
+ <name>ping</name>
+ </queue>
+ <!-- Example definitions of queues with overriden settings -->
+ <queue>
+ <name>test-queue</name>
+ <test-queue>
+ <exchange>test.direct</exchange>
+ <durable>true</durable>
+ </test-queue>
+ </queue>
+ <queue>
+ <name>test-ping</name>
+ <test-ping>
+ <exchange>test.direct</exchange>
+ </test-ping>
+ </queue>
+ </queues>
+ </localhost>
+ </virtualhost>
+</virtualhosts>
+</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>
+<username>=<privilege>
+</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 <MC4J-Installation>/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->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->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 &
+ 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 & 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 & 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
+ & 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