summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Robie <jonathan@apache.org>2010-01-21 23:13:42 +0000
committerJonathan Robie <jonathan@apache.org>2010-01-21 23:13:42 +0000
commitaf58f5140110d2d8da38773a1b13f6e288f8fa56 (patch)
tree7b8350ad4c4183152620799512ac9fb3afff6f42
parent7009e44fbf44f4053a9067c2228abae0bc2e3ad7 (diff)
downloadqpid-python-af58f5140110d2d8da38773a1b13f6e288f8fa56.tar.gz
Now well formed for all included content - must add other clients and FAQ.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@901917 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--doc/book/src/AMQP Compatibility.xml692
-rw-r--r--doc/book/src/AMQP Java JMS Messaging Client.xml62
-rw-r--r--doc/book/src/AMQP-Messaging-Broker-Java.xml2
-rw-r--r--doc/book/src/Binding URL Format.xml151
-rw-r--r--doc/book/src/Book.xml17
-rw-r--r--doc/book/src/Book_Info.xml54
-rw-r--r--doc/book/src/Connection URL Format.xml360
-rw-r--r--doc/book/src/How to Use JNDI.xml154
-rw-r--r--doc/book/src/Qpid JMX Management Console.xml32
-rw-r--r--doc/book/src/Qpid Troubleshooting Guide.xml28
-rw-r--r--doc/book/src/System Properties.xml396
-rw-r--r--doc/book/src/Using Qpid with other JNDI Providers.xml194
-rw-r--r--doc/book/src/amqp-advanced-message-queueing-protocol.html216
-rw-r--r--doc/book/src/foo.xml42
-rw-r--r--doc/book/src/schemas.xml4
15 files changed, 2315 insertions, 89 deletions
diff --git a/doc/book/src/AMQP Compatibility.xml b/doc/book/src/AMQP Compatibility.xml
new file mode 100644
index 0000000000..903a366631
--- /dev/null
+++ b/doc/book/src/AMQP Compatibility.xml
@@ -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>
+ Qpid provides the most complete and compatible implementation
+ of AMQP. And is the most aggressive in implementing the latest
+ version of the specification.
+ </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>
diff --git a/doc/book/src/AMQP Java JMS Messaging Client.xml b/doc/book/src/AMQP Java JMS Messaging Client.xml
new file mode 100644
index 0000000000..fc8a1e836c
--- /dev/null
+++ b/doc/book/src/AMQP Java JMS Messaging Client.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+
+ <title>
+ Apache Qpid : AMQP Java JMS Messaging Client
+ </title>
+
+ <para>The Java Client supported by Qpid implements the <ulink
+ url="http://java.sun.com/products/jms/docs.html">Java JMS 1.1
+ Specification</ulink>. </para>
+
+
+ <section role="h3"
+ id="AMQPJavaJMSMessagingClient-GeneralUserGuides">
+ <title>General User Guides</title>
+
+
+<!--
+Does not seem to exist!
+
+ <listitem><para>AMQP Java JMS Client Feature Guide
+ </para></listitem>
+
+http://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=qpid&title=JMS%20Client%20Feature%20Guide&linkCreation=true&fromPageId=4589057
+-->
+
+ <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="System%20Properties.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Connection%20URL%20Format.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Binding%20URL%20Format.xml"/>
+
+<!--
+ <listitem><para>How to Use JNDI to configure the AMQP Java JMS Client
+ </para></listitem>
+ <listitem><para>Using the AMQP Java JMS Client with RT Java
+ </para></listitem>
+ <listitem><para>AMQP Java JMS Client Tuning Guide
+ </para></listitem>
+-->
+
+<!--h3--></section>
+
+ <section role="h3" id="AMQPJavaJMSMessagingClient-AMQPJavaJMSExamples">
+
+ <title>AMQP Java JMS Examples </title>
+
+ <itemizedlist>
+ <listitem><para>
+ <ulink url="https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/"></ulink>
+ </para></listitem>
+
+ <listitem><para>
+ <ulink url="https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/"></ulink>
+ </para></listitem>
+ <listitem><para>
+ <ulink url="https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/"></ulink>
+ </para></listitem>
+ </itemizedlist>
+
+<!--h3--></section>
+
+</chapter>
diff --git a/doc/book/src/AMQP-Messaging-Broker-Java.xml b/doc/book/src/AMQP-Messaging-Broker-Java.xml
index ef743a0704..e0d70494ef 100644
--- a/doc/book/src/AMQP-Messaging-Broker-Java.xml
+++ b/doc/book/src/AMQP-Messaging-Broker-Java.xml
@@ -47,4 +47,4 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Management%20Design%20notes.xml"/>
</chapter>
-</part> \ No newline at end of file
+</part>
diff --git a/doc/book/src/Binding URL Format.xml b/doc/book/src/Binding URL Format.xml
new file mode 100644
index 0000000000..7b1a36707d
--- /dev/null
+++ b/doc/book/src/Binding URL Format.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml"><title>
+ Apache Qpid : BindingURLFormat
+ </title>
+ <programlisting>
+&lt;Exchange Class&gt;://&lt;Exchange Name&gt;/[&lt;Destination&gt;]/[&lt;Queue&gt;][?&lt;option&gt;='&lt;value&gt;'[&amp;&lt;option&gt;='&lt;value&gt;']]
+</programlisting>
+ <para>
+ This URL format is used for two purposes in the code base. The
+ broker uses this in the XML configuration file to create and bind
+ queues at broker startup. It is also used by the client as a
+ destination.
+ </para><para>
+ This format was used because it allows an explicit description of
+ exchange and queue relationship.
+ </para><para>
+ The Exchange Class is not normally required for client connection
+ as clients only publish to a named exchange however if exchanges
+ are being dynamically instantiated it will be required. The class
+ is required for the server to instantiate an exchange.
+ </para><para>
+ There are a number of options that are currently defined:
+ </para><table><title/><tgroup cols="3">
+ <tbody>
+ <row>
+ <entry>
+ Option
+ </entry>
+ <entry>
+ type
+ </entry>
+ <entry>
+ Description
+ </entry>
+ </row>
+ <row>
+ <entry>
+ exclusive
+ </entry>
+ <entry>
+ boolean
+ </entry>
+ <entry>
+ Is this an exclusive connection
+ </entry>
+ </row>
+ <row>
+ <entry>
+ autodelete
+ </entry>
+ <entry>
+ boolean
+ </entry>
+ <entry>
+ Should this queue be deleted on client disconnection
+ </entry>
+ </row>
+ <row>
+ <entry>
+ durable
+ </entry>
+ <entry>
+ boolean
+ </entry>
+ <entry>
+ Create a durable queue
+ </entry>
+ </row>
+ <row>
+ <entry>
+ clientid
+ </entry>
+ <entry>
+ string
+ </entry>
+ <entry>
+ Use the following client id
+ </entry>
+ </row>
+ <row>
+ <entry>
+ subscription
+ </entry>
+ <entry>
+ boolean
+ </entry>
+ <entry>
+ Create a subscription to this destination
+ </entry>
+ </row>
+ <row>
+ <entry>
+ routingkey
+ </entry>
+ <entry>
+ string
+ </entry>
+ <entry>
+ Use this value as the routing key
+ </entry>
+ </row>
+ </tbody>
+ </tgroup></table><para>
+ Using these options in conjunction with the Binding URL format
+ should allow future expansion as new and custom exchange types
+ are created.
+ </para><para>
+ The URL format requires <emphasis>that at least one</emphasis> Queue or
+ routingkey option be present on the URL.
+ </para><para>
+ The routingkey would be used to encode a topic as shown in the
+ examples section below.
+ </para>
+
+ <section role="h4" id="BindingURLFormat-Examples">
+ <title>
+ Examples
+ </title>
+
+<example>
+<title> Queues</title>
+ <para>
+ A queue can be created in QPID using the following URL format.
+ </para><para>
+ direct://amq.direct//&lt;Queue Name&gt;
+ </para><para>
+ For example: direct://amq.direct//simpleQueue
+ </para><para>
+ Queue names may consist of any mixture of digits, letters, and
+ underscores.
+ </para>
+</example>
+<example>
+<title>Topics</title>
+ <para>
+ A topic can be created in QPID using the following URL format.
+ </para><para>
+ topic://amq.topic/&lt;Topic Subscription&gt;/
+ </para><para>
+ The topic subscription may only contain the letters A-Z and a-z
+ and digits 0-9.
+ </para>
+ <programlisting>
+direct://amq.direct/SimpleQueue
+direct://amq.direct/UnusuallyBoundQueue?routingkey='/queue'
+topic://amq.topic?routingkey='stocks.#'
+topic://amq.topic?routingkey='stocks.nyse.ibm'
+</programlisting>
+</example>
+<!--h4--></section>
+</chapter>
diff --git a/doc/book/src/Book.xml b/doc/book/src/Book.xml
index 8a1037d06f..b592399009 100644
--- a/doc/book/src/Book.xml
+++ b/doc/book/src/Book.xml
@@ -20,17 +20,18 @@
<part>
<title>AMQP Messaging Clients Clients</title>
- <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="AMQP%20Java%20JMS%20Messaging%20Client.html"/>
- <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="4589059.html"/>
- <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="AMQP%20.NET%20Messaging%20Client.html"/>
- <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="AMQP%20Python%20Messaging%20Client.html"/>
- <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="AMQP%20Ruby%20Messaging%20Client.html"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="AMQP%20Java%20JMS%20Messaging%20Client.xml"/>
+<!-- <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="AMQP%20C++%20Messaging%20Client.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="AMQP%20.NET%20Messaging%20Client.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="AMQP%20Python%20Messaging%20Client.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="AMQP%20Ruby%20Messaging%20Client.xml"/>
+-->
</part>
<part>
<title>Appendices</title>
- <xi:include href="AMQP compatibility.xml"/>
- <xi:include href="Qpid Interoperability Documentation.xml"/>
- <!-- <xi:include href="FAQ.xml"/> -->
+ <xi:include href="AMQP%20Compatibility.xml"/>
+ <xi:include href="Qpid%20Interoperability%20Documentation.xml"/>
+<!-- <xi:include href="FAQ.xml"/> -->
</part>
</book>
diff --git a/doc/book/src/Book_Info.xml b/doc/book/src/Book_Info.xml
index 1eb52baf60..f8f7516917 100644
--- a/doc/book/src/Book_Info.xml
+++ b/doc/book/src/Book_Info.xml
@@ -4,25 +4,45 @@
<bookinfo id="book-Messaging_Installation_Guide-Messaging_Installation_Guide">
<title>Apache Qpid</title>
- <subtitle>
+ <subtitle>Open Source AMQP Messaging</subtitle>
<edition>1</edition>
<pubsnumber>0</pubsnumber>
<productname>Apache Qpid</productname>
<productnumber>6</productnumber>
- <abstract>
- <para>This is the user documentation for Apache Qpid. It describes how to download and install###.
- <corpauthor>
- <inlinemediaobject>
- <imageobject>
- <imagedata fileref="Common_Content/images/qpid-logo.png" format="PNG" />
- </imageobject>
- </inlinemediaobject>
- </corpauthor>
- <copyright>
- <year>&YEAR;</year>
- <holder>The Apache Software Foundation</holder>
- </copyright>
- <xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- <xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
- </bookinfo>
+ <corpauthor>
+ <inlinemediaobject>
+ <imageobject>
+ <imagedata fileref="Common_Content/images/qpid-logo.png" format="PNG" />
+ </imageobject>
+ </inlinemediaobject>
+ </corpauthor>
+
+ <copyright>
+ <year>2010</year>
+ <holder>The Apache Software Foundation</holder>
+ </copyright>
+
+ <legalnotice>
+ <para>Licensed under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License
+ at</para>
+
+ <para><filename>http://www.apache.org/licenses/LICENSE-2.0</filename></para>
+
+ <para>Unless required by applicable law or agreed to in
+ writing, software distributed under the License is
+ distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+ CONDITIONS OF ANY KIND, either express or implied. See the
+ License for the specific language governing permissions and
+ limitations under the License.
+ </para>
+
+
+ </legalnotice>
+
+
+
+</bookinfo>
+
diff --git a/doc/book/src/Connection URL Format.xml b/doc/book/src/Connection URL Format.xml
new file mode 100644
index 0000000000..13145967d6
--- /dev/null
+++ b/doc/book/src/Connection URL Format.xml
@@ -0,0 +1,360 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+ <title>
+ Apache Qpid : Connection URL Format
+ </title>
+
+ <section role="h4" id="ConnectionURLFormat-Format">
+ <title>
+ Format
+ </title>
+ <programlisting>
+amqp://[&lt;user&gt;:&lt;pass&gt;@][&lt;clientid&gt;]&lt;virtualhost&gt;[?&lt;option&gt;='&lt;value&gt;'[&amp;&lt;option&gt;='&lt;value&gt;']]
+ </programlisting>
+ <para>
+ The connection url defines the values that are common across
+ the cluster of brokers. The virtual host is second in the list
+ as the AMQP specification demands that it start with a '/'
+ otherwise it be more readable to be swapped with
+ clientid. There is currently only one required option and that
+ is the <emphasis>brokerlist</emphasis> option. In addition the
+ following options are recognised. </para>
+<!--h4--></section>
+
+
+ <section role="h4" id="ConnectionURLFormat-WorkedExample">
+
+ <title> Worked Example </title>
+
+
+
+ <para> You could use a URL which looks something like this:
+ </para>
+
+<programlisting>
+amqp://guest:guest@client1/development?brokerlist='tcp://localhost:5672'
+</programlisting>
+
+ <para> Breaking this example down, here's what it all
+ means: </para>
+
+ <itemizedlist>
+ <listitem><para> amqp = the protocol we're using
+ </para></listitem>
+
+ <listitem><para> guest:guest@localhost = username:password@clientid
+ where the clientid is the name of your server (used under
+ the covers but don't worry about this for now). Always use
+ the guest:guest combination at the moment.</para></listitem>
+
+ <listitem><para> development = the name of the virtualhost, where the
+ virtualhost is a path which acts as a namespace. You can
+ effectively use any value here so long as you're consistent
+ throughout. The virtualhost must start with a slash "/" and
+ continue with names separated by slashes. A name consists of
+ any combination of at least one of [A-Za-z0-9] plus zero or
+ more of [.-_+!=:]. </para></listitem>
+
+ <listitem><para>brokerlist = this is the host address and port for
+ the broker you want to connect to. The connection factory
+ will assume tcp if you don't specify a transport
+ protocol. The port also defaults to 5672. Naturally you have
+ to put at least one broker in this list. </para></listitem>
+
+ </itemizedlist>
+
+ <para> This example is not using failover so only provides
+ one host for the broker. If you do wish to connect using
+ failover you can provide two (or more) brokers in the
+ format: </para>
+
+ <para>
+ brokerlist='tcp://host1&amp;tcp://host2:5673' </para>
+
+ <para>The default failover setup will automatically retry
+ each broker once after a failed connection. If the
+ brokerlist contains more than one server then these servers
+ are tried in a round robin. Details on how to modifiy this
+ behaviour will follow soon ! </para>
+
+ <!--h4-->
+ </section>
+
+ <section role="h4"
+ id="ConnectionURLFormat-Options">
+
+ <title> Options</title>
+
+ <table><title/><tgroup cols="3">
+ <tbody>
+ <row>
+ <entry>
+ Option
+ </entry>
+ <entry>
+ Default
+ </entry>
+ <entry>
+ Description
+ </entry>
+ </row>
+ <row>
+ <entry>
+ brokerlist
+ </entry>
+ <entry>
+ see below
+ </entry>
+ <entry>
+ The list of brokers to use for this connection
+ </entry>
+ </row>
+ <row>
+ <entry>
+ failover
+ </entry>
+ <entry>
+ see below
+ </entry>
+ <entry>
+ The type of failover method to use with the broker list.
+ </entry>
+ </row>
+ <row>
+ <entry>
+ maxprefetch
+ </entry>
+ <entry>
+ 5000
+ </entry>
+ <entry>
+ The maximum number of messages to prefetch from the broker.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup></table>
+<!--h4--></section>
+
+<section role="h4" id="ConnectionURLFormat-Brokerlistoption">
+ <title> Brokerlist option </title>
+ <programlisting>
+brokerlist='&lt;broker url&gt;[;&lt;broker url&gt;]'
+</programlisting>
+ <para>
+ The broker list defines the various brokers that can be used for
+ this connection. A minimum of one broker url is required
+ additional URLs are semi-colon(';') delimited.
+ </para>
+<!--h4--></section>
+
+<section role="h4" id="ConnectionURLFormat-BrokerURLformat">
+
+<title> Broker URL format </title>
+
+ <programlisting>
+&lt;transport&gt;://&lt;host&gt;[:&lt;port&gt;][?&lt;option&gt;='&lt;value&gt;'[&amp;&lt;option&gt;='&lt;value&gt;']]
+</programlisting>
+ <para>
+ There are currently quite a few default values that can be
+ assumed. This was done so that the current client examples would
+ not have to be re-written. The result is if there is no
+ transport, 'tcp' is assumed and the default AMQP port of 5672 is
+ used if no port is specified.
+ </para><table><title/><tgroup cols="1">
+ <tbody>
+ <row>
+ <entry>
+ Transport
+ </entry>
+ </row>
+ <row>
+ <entry>
+ tcp
+ </entry>
+ </row>
+ <row>
+ <entry>
+ vm
+ </entry>
+ </row>
+ </tbody>
+ </tgroup></table><para>
+ Currently only 'tcp' and 'vm' transports are supported. Each
+ broker can take have additional options that are specific to that
+ broker. The following are currently implemented options. To add
+ support for further transports the
+ ''client.transportTransportConnection'' class needs updating
+ along with the parsing to handle the transport.
+ </para><table><title/><tgroup cols="3">
+ <tbody>
+ <row>
+ <entry>
+ Option
+ </entry>
+ <entry>
+ Default
+ </entry>
+ <entry>
+ Description
+ </entry>
+ </row>
+ <row>
+ <entry>
+ retries
+ </entry>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ The number of times to retry connection to this Broker
+ </entry>
+ </row>
+ <row>
+ <entry>
+ ssl
+ </entry>
+ <entry>
+ false
+ </entry>
+ <entry>
+ Use ssl on the connection
+ </entry>
+ </row>
+ <row>
+ <entry>
+ connecttimeout
+ </entry>
+ <entry>
+ 30000
+ </entry>
+ <entry>
+ How long in (milliseconds) to wait for the connection to
+ succeed
+ </entry>
+ </row>
+ <row>
+ <entry>
+ connectdelay
+ </entry>
+ <entry>
+ none
+ </entry>
+ <entry>
+ How long in (milliseconds) to wait before attempting to
+ reconnect
+ </entry>
+ </row>
+ </tbody>
+ </tgroup></table>
+<!--h4--></section>
+
+ <section role="h4" id="ConnectionURLFormat-Brokerlistfailoveroption">
+
+ <title> Brokerlist failover option </title>
+ <programlisting>
+failover='&lt;method&gt;[?&lt;options&gt;]'
+</programlisting>
+ <para>
+ This option controls how failover occurs when presented with a
+ list of brokers. There are only two methods currently implemented
+ but interface qpid.jms.failover.FailoverMethod can be
+ used for defining further methods.
+ </para><para>
+ Currently implemented failover methods.
+ </para><table><title/><tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>
+ Method
+ </entry>
+ <entry>
+ Description
+ </entry>
+ </row>
+ <row>
+ <entry>
+ singlebroker
+ </entry>
+ <entry>
+ This will only use the first broker in the list.
+ </entry>
+ </row>
+ <row>
+ <entry>
+ roundrobin
+ </entry>
+ <entry>
+ This method tries each broker in turn.
+ </entry>
+ </row>
+ <row>
+ <entry>
+ nofailover
+ </entry>
+ <entry>
+ [New in 0.5] This method disables all retry and failover
+ logic.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup></table><para>
+ The current defaults are naturally to use the 'singlebroker' when
+ only one broker is present and the 'roundrobin' method with
+ multiple brokers. The '''method''' value in the URL may also be
+ any valid class on the classpath that implements the
+ FailoverMethod interface.
+ </para><para>
+ The 'nofailover' method is useful if you are using a 3rd party
+ tool such as Mule that has its own reconnection strategy that you
+ wish to use.
+ </para>
+
+ <table>
+ <title> Options</title>
+ <tgroup cols="3">
+ <tbody>
+ <row>
+ <entry>
+ Option
+ </entry>
+ <entry>
+ Default
+ </entry>
+ <entry>
+ Description
+ </entry>
+ </row>
+ <row>
+ <entry>
+ cyclecount
+ </entry>
+ <entry>
+ 1
+ </entry>
+ <entry>
+ The number of times to loop through the list of available
+ brokers before failure.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup></table><para>
+ <emphasis>Note:</emphasis> Default was changed from 0 to 1 in Release 0.5
+ </para>
+<!--h4--></section>
+
+ <section role="h3" id="ConnectionURLFormat-SampleURLs">
+
+ <title>
+ Sample URLs
+ </title>
+ <programlisting>
+amqp:///test?brokerlist='localhost'
+amqp:///test?brokerlist='tcp://anotherhost:5684?retries='10''
+amqp://guest:guest@/test?brokerlist='vm://:1;vm://:2'&amp;failover='roundrobin'
+amqp://guest:guest@/test?brokerlist='vm://:1;vm://:2'&amp;failover='roundrobin?cyclecount='20''
+amqp://guest:guest@client/test?brokerlist='tcp://localhost;tcp://redundant-server:5673?ssl='true''&amp;failover='roundrobin'
+amqp://guest:guest@/test?brokerlist='vm://:1'&amp;failover='nofailover'
+</programlisting>
+
+<!--h3--></section>
+</chapter>
diff --git a/doc/book/src/How to Use JNDI.xml b/doc/book/src/How to Use JNDI.xml
new file mode 100644
index 0000000000..bc108d9e36
--- /dev/null
+++ b/doc/book/src/How to Use JNDI.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+ <title>
+ Apache Qpid : How to Use JNDI
+ </title>
+ <section role="h2" id="HowtoUseJNDI-HowtousethePropertiesFileInitialContextFactory">
+ <title>
+ How to use the PropertiesFileInitialContextFactory
+ </title>
+
+ <para>
+ This ContextFactory uses a java properties formatted file to
+ setup initial values.
+ </para>
+ <section role="h3" id="HowtoUseJNDI-JNDIPropertysetup">
+ <title>
+ JNDI Property setup
+ </title>
+ <para>
+ By setting the JNDI Initial Context Factory and URL as
+ below it is possible to load any File from the locally
+ mounted file system to use for JNDI purposes. The format
+ of the file is described in the next section.
+ </para>
+ <programlisting>
+java.naming.factory.initial = org.apache.qpid.jndi.PropertiesFileInitialContextFactory
+java.naming.provider.url = &lt;path to JNDI File&gt;
+</programlisting>
+ <para>
+ By simply setting these two system properties you can jump
+ straight to the InitialContext creation in your code.
+ </para>
+ </section>
+ <section role="h3" id="HowtoUseJNDI-Examplepropertiesfile">
+ <title>
+ Example properties file </title>
+ <para>
+ This is the example properties file.
+ </para>
+ <programlisting>
+# register some connection factories
+# connectionfactory.[jndiname] = [ConnectionURL]
+connectionfactory.local = amqp://guest:guest@clientid/testpath?brokerlist='vm://:1'
+
+# register some queues in JNDI using the form
+# queue.[jndiName] = [physicalName]
+queue.MyQueue = example.MyQueue
+
+# register some topics in JNDI using the form
+# topic.[jndiName] = [physicalName]
+topic.ibmStocks = stocks.nyse.ibm
+
+# Register an AMQP destination in JNDI
+# NOTE: Qpid currently only supports direct,topics and headers
+# destination.[jniName] = [BindingURL]
+destination.direct = direct://amq.direct//directQueue
+</programlisting>
+ <para>
+ The property file allows a number of queues to be defined that
+ can then be discovered via JNDI. There are four properties used
+ by the PFICFactory.
+ <emphasis>connectionfactory.&lt;jndiname&gt;</emphasis> this is the <xref linkend="qpid_Connection-20URL-20Format"/> that the connection
+ factory will use to perform connections.
+ <emphasis>queue.&lt;jndiname&gt;</emphasis> this defines a jms queue or in
+ amqp a amq.direct exchange
+ <emphasis>topic.&lt;jndiname&gt;</emphasis> this defines a jms topic or in
+ amqp a amq.topic exchange
+ <emphasis>destination.&lt;jndiname&gt;</emphasis> this takes a <xref linkend="qpid_BindingURLFormat"/>
+ and so can be used for defining all amq destinations, queues,
+ topics and header matching.
+ </para><para>
+ In all of these properties the <emphasis>&lt;jndiname&gt;</emphasis> is the
+ string value that would be given when performing a lookup.
+ </para><para>
+ <emphasis>NOTE</emphasis>: This does not create the queue on the broker. You
+ should ensure that you have created the queue before publishing
+ to it. Queues can be declared in the virtualhosts.xml file so
+ that they are created on broker startup, or created dynamically
+ by consuming clients. Topics and other destinations that use
+ temporary queues cannot be created in this way, so a consumer
+ must be created first before publishing messages with mandatory
+ routing.
+ </para>
+ </section>
+ <section role="h3" id="HowtoUseJNDI-Examplelookupcode">
+ <title>
+ Example lookup code
+ </title><!--h3-->
+
+ <para>
+ The <emphasis>bindingValue</emphasis> is the String that would be placed in
+ <emphasis>&lt;jndiname&gt;</emphasis> above.
+ </para>
+
+ <example>
+ <title>Simple JNDI lookup using files</title>
+ <programlisting>
+//Ensure you have your system properties set
+final String INITIAL_CONTEXT_FACTORY = "org.apache.qpid.jndi.PropertiesFileInitialContextFactory";
+
+System.setProperty(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);
+System.setProperty(Context.PROVIDER_URL, _JNDIFile);
+
+// Create the initial context
+Context ctx = new InitialContext();
+
+// Perform the binds
+object = ctx.lookup(bindingValue);
+
+// Close the context when we're done
+ctx.close();
+</programlisting>
+</example>
+
+<example>
+<title>Simple JNDI lookup using properties</title>
+
+ <programlisting>
+
+final String INITIAL_CONTEXT_FACTORY = "org.apache.qpid.jndi.PropertiesFileInitialContextFactory";
+
+final String CONNECTION_JNDI_NAME = "local";
+final String CONNECTION_NAME = "amqp://guest:guest@clientid/testpath?brokerlist='vm://:1'";
+
+final String QUEUE_JNDI_NAME = "queue";
+final String QUEUE_NAME = "example.MyQueue";
+
+// Set the properties ...
+Properties properties = new Properties();
+properties.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);
+properties.put("connectionfactory."+CONNECTION_JNDI_NAME , CONNECTION_NAME);
+properties.put("queue."+QUEUE_JNDI_NAME , QUEUE_NAME);
+
+// Create the initial context
+Context ctx = new InitialContext(properties);
+
+// Perform the lookups
+ConnectionFactory factory = (ConnectionFactory)ctx.lookup(CONNECTION_JNDI_NAME);
+Queue queue = (Queue)ctx.lookup(QUEUE_JNDI_NAME);
+
+// Close the context when we're done
+ctx.close();
+</programlisting>
+</example>
+ </section>
+
+ <section>
+ <title>Using Qpid with Other JNDI Providers</title>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Using Qpid with other JNDI Providers.xml"/>
+ </section>
+<!--h2-->
+ </section>
+
+</chapter>
diff --git a/doc/book/src/Qpid JMX Management Console.xml b/doc/book/src/Qpid JMX Management Console.xml
new file mode 100644
index 0000000000..ecba6e8a18
--- /dev/null
+++ b/doc/book/src/Qpid JMX Management Console.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+
+ <title>
+ Apache Qpid : Qpid JMX Management Console
+ </title>
+
+ <section role="h2" id="QpidJMXManagementConsole-QpidJMXManagementConsole">
+
+ <title> Qpid JMX Management Console </title>
+
+ <section role="h3" id="QpidJMXManagementConsole-Overview">
+
+ <title>
+ Overview
+ </title>
+
+ <para>
+ The Qpid JMX Management Console is a standalone Eclipse
+ RCP application that communicates with the broker using
+ JMX.
+ </para>
+
+ <xi:include href="Configuring%20Management%20Users.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <xi:include href="Configuring%20Qpid%20JMX%20Management%20Console.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <xi:include href="Management%20Console%20Security.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <xi:include href="Qpid%20JMX%20Management%20Console%20FAQ.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <xi:include href="Qpid%20JMX%20Management%20Console%20User%20Guide.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ <xi:include href="Qpid%20Management%20Features.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+<!--h3--></section>
+<!--h2--></section>
+</chapter>
diff --git a/doc/book/src/Qpid Troubleshooting Guide.xml b/doc/book/src/Qpid Troubleshooting Guide.xml
index 84bfc01374..f9b29eabab 100644
--- a/doc/book/src/Qpid Troubleshooting Guide.xml
+++ b/doc/book/src/Qpid Troubleshooting Guide.xml
@@ -1,26 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
-<chapter xmlns:html="http://www.w3.org/1999/xhtml"><title>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+
+ <title>
Apache Qpid : Qpid Troubleshooting Guide
- </title><para>
- Contents
- </para>
- <itemizedlist>
- <listitem><para>
- <xref linkend="QpidTroubleshootingGuide-I-27mgettingajava.lang.UnsupportedClassVersionErrorwhenItrytostartthebroker.Whatdoesthismean-3F"/>
- </para></listitem>
- <listitem><para>
- <xref linkend="QpidTroubleshootingGuide-I-27mhavingaproblembindingtotherequiredhost-3Aportatbrokerstartup-3F"/>
- </para></listitem>
- <listitem><para>
- <xref linkend="QpidTroubleshootingGuide-I-27mhavingproblemswithmyclasspath.HowcanIensurethatmyclasspathisok-3F"/>
- </para></listitem>
- <listitem><para>
- <xref linkend="QpidTroubleshootingGuide-Ican-27tgetthebrokertostart.HowcanIdiagnosetheproblem-3F"/>
- </para></listitem>
- <listitem><para>
- <xref linkend="QpidTroubleshootingGuide-WhenItrytosendmessagestoaqueueI-27mgettingaerrorasthequeuedoesnotexist.WhatcanIdo-3F"/>
- </para></listitem>
- </itemizedlist>
+ </title>
+
<section role="h2" id="QpidTroubleshootingGuide-I-27mgettingajava.lang.UnsupportedClassVersionErrorwhenItrytostartthebroker.Whatdoesthismean-3F"><title>
I'm getting a java.lang.UnsupportedClassVersionError when I
try to start the broker. What does this mean ?
@@ -112,6 +96,7 @@
manifest for this jar includes the common-launch.jar, and thus
all the code you need to run a client application.
</para>
+ </section>
<section role="h2" id="QpidTroubleshootingGuide-Ican-27tgetthebrokertostart.HowcanIdiagnosetheproblem-3F"><title>
I can't get the broker to start. How can I diagnose the
@@ -146,4 +131,5 @@
<xref linkend="qpid_Qpid-20Java-20FAQ"/> for more details of using the virtualhosts.xml route.
</para>
<!--h2--></section>
+
</chapter>
diff --git a/doc/book/src/System Properties.xml b/doc/book/src/System Properties.xml
new file mode 100644
index 0000000000..07750ba812
--- /dev/null
+++ b/doc/book/src/System Properties.xml
@@ -0,0 +1,396 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+
+ <title>
+ Apache Qpid : System Properties
+ </title>
+
+ <section role="h2" id="SystemProperties-ExplanationofSystempropertiesusedinQpid">
+
+ <title> Explanation of System properties used in Qpid </title>
+
+ <para>
+ This page documents the various System Properties that are
+ currently used in the Qpid Java code base.
+ </para>
+
+<!-- ######################################################### -->
+
+ <section role="h3" id="SystemProperties-ClientProperties">
+ <title> Client Properties </title>
+
+ <variablelist>
+ <varlistentry>
+ <term>STRICT_AMQP</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Type</term>
+ <listitem><para>Boolean</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>FALSE</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para> This forces the client to only send AMQP compliant
+ frames. This will disable a number of JMS features.</para>
+
+ <itemizedlist>
+ <title> Features disabled by STRICT_AMQP</title>
+ <listitem><para>Queue Browser
+ </para></listitem>
+ <listitem><para>Message Selectors
+ </para></listitem>
+ <listitem><para>Durable Subscriptions
+ </para></listitem>
+ <listitem><para>Session Recover may result in duplicate message delivery
+ </para></listitem>
+ <listitem><para>Destination validation, so no InvalidDestinationException
+ will be thrown
+ </para></listitem>
+ </itemizedlist>
+ <para>
+ This is associated with property <xref linkend="SystemProperties-STRICTAMQPFATAL"/>
+ </para>
+ </listitem>
+ </varlistentry>
+
+
+
+ <varlistentry>
+ <term>STRICT_AMQP_FATAL</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Type</term>
+ <listitem><para>Boolean</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>FALSE</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ This will cause any attempt to utilise an enhanced feature to
+ throw and UnsupportedOperationException. When set to false then
+ the exception will not occur but the feature will be disabled.
+ </para>
+ <para>
+ e.g.
+ The Queue Browser will always show no messages.
+ Any message selector will be removed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>IMMEDIATE_PREFETCH</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Type</term>
+ <listitem><para>Boolean</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>FALSE</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ The default with AMQP is to start prefetching messages. However,
+ with certain 3rd party Java tools, such as Mule this can cause a
+ problem. Mule will create a consumer but never consume from it so
+ any any prefetched messages will be stuck until that session is
+ closed. This property is used to re-instate the default AMQP
+ behaviour. The default Qpid behaviour is to prevent prefetch
+ occurring, by starting the connection Flow Controlled, until a
+ request for a message is made on the consumer either via a
+ receive() or setting a message listener.</para>
+ </listitem>
+ </varlistentry>
+
+
+
+ <varlistentry>
+ <term>amqj.default_syncwrite_timeout</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Type</term>
+ <listitem><para>long</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>30000</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para> The number length of time in millisecond to wait
+ for a synchronous write to complete.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>amq.dynamicsaslregistrar.properties</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Type</term>
+ <listitem><para>String</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>org/apache/qpid/client/security/DynamicSaslRegistrar.properties</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>The name of the SASL configuration properties file.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>amqj.heartbeat.timeoutFactor</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Type</term>
+ <listitem><para>float</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>2.0</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ The factor used to get the timeout from the delay between
+ heartbeats
+ </para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>amqj.tcpNoDelay</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Type</term>
+ <listitem><para>Boolean</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>TRUE</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para> Disable Nagle's algorithm on the TCP connection.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>amqj.sendBufferSize</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>integer</term>
+ <listitem><para>Boolean</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>32768</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>This is the default buffer sized created by Mina.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>amqj.receiveBufferSize</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Type</term>
+ <listitem><para>integer</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>32768</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>This is the default buffer sized created by Mina.
+ </para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>amqj.protocolprovider.class</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Type</term>
+ <listitem><para>String</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>org.apache.qpid.server.protocol.AMQPFastProtocolHandler</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para> This specifies the default IoHandlerAdapter that
+ represents the InVM broker. The IoHandlerAdapter must have
+ a constructor that takes a single Integer that represents
+ the InVM port number.
+ </para>
+ </listitem>
+ </varlistentry>
+
+
+ <varlistentry>
+ <term>amqj.protocol.logging.level</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Type</term>
+ <listitem><para>Boolean</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>null</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>If set this will turn on protocol logging on the
+ client. </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>jboss.host</term>
+ <listitem>
+ <para>
+ Used by the JBossConnectionFactoryInitialiser to specify the host
+ to connect to perform JNDI lookups.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>jboss.port</term>
+ <listitem>
+ <para>
+ Used by the JBossConnectionFactoryInitialiser to specify the port
+ to connect to perform JNDI lookups.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>amqj.MaximumStateWait</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>30000</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Used to set the maximum time the State Manager should wait before
+ timing out a frame wait.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </section>
+<!-- ######################################################### -->
+
+ <section role="h3" id="SystemProperties-ManagementProperties">
+
+ <title>
+ Management Properties
+ </title>
+
+ <variablelist>
+ <varlistentry>
+ <term>security</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>null</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ String representing the Security level to be used to on
+ the connection to the broker. The null default results
+ in no security or PLAIN. When used with jmxconnector
+ 'javax.management.remote.jmxmp.JMXMPConnector' a
+ security value of 'CRAM-MD5' will result in all
+ communication to the broker being encrypted.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>jmxconnector</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>null</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ String representing the JMXConnector class used to
+ perform the connection to the broker. The null default
+ results in the standard JMX connector. Utilising
+ 'javax.management.remote.jmxmp.JMXMPConnector' and
+ security 'CRAM-MD5' will result in all communication to
+ the broker being encrypted.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>timeout</term>
+ <listitem>
+ <variablelist>
+ <varlistentry>
+ <term>Default</term>
+ <listitem><para>5000</para></listitem>
+ </varlistentry>
+ </variablelist>
+ <para>
+ Long value representing the milli seconds before
+ connection to the broker should timeout.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ </section>
+
+
+<!-- ######################################################### -->
+
+
+ <section role="h3" id="SystemProperties-PropertiesusedinExamples">
+
+ <title> Properties used in Examples </title>
+
+ <variablelist>
+ <varlistentry>
+ <term>archivepath</term>
+ <listitem>
+ <para>
+ Used in <filename>FileMessageDispatcher</filename>. This
+ properties specifies the directory to move payload
+ file(s) to archive location as no error</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+</section>
+</section>
+</chapter>
diff --git a/doc/book/src/Using Qpid with other JNDI Providers.xml b/doc/book/src/Using Qpid with other JNDI Providers.xml
new file mode 100644
index 0000000000..a9b6186b10
--- /dev/null
+++ b/doc/book/src/Using Qpid with other JNDI Providers.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<chapter xmlns:html="http://www.w3.org/1999/xhtml">
+
+ <title>
+ Apache Qpid : Using Qpid with other JNDI Providers
+ </title>
+
+ <section role="h2" id="UsingQpidwithotherJNDIProviders-HowtouseaJNDIProvider">
+
+ <title> How to use a JNDI Provider </title>
+
+ <para>
+ Qpid will work with any JNDI provider capable of storing Java
+ objects. We have a task to add our own initial context factory,
+ but until that's available ....
+ </para>
+
+ <para>
+ First you must select a JNDI provider to use. If you aren't
+ already using an application server (i.e. Tomcat ?) which
+ provides JNDI support you could consider using either:
+ </para>
+
+ <itemizedlist>
+ <listitem><para>Apache's <xref linkend="qpid_index"/>
+ which provides an LDAP JNDI implementation
+ </para></listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <listitem>
+ <para>OR the SUN JNDI SPI for the FileSystem which can be
+ downloaded from <xref linkend="qpid_index"/>
+ </para>
+ <itemizedlist>
+ <listitem><para>Click : Download JNDI 1.2.1 &amp; More button
+ </para></listitem>
+ <listitem><para>Download: File System Service Provider, 1.2 Beta 3
+ </para></listitem>
+ <listitem><para>and then add the two jars in the lib dir to your class path.
+ </para></listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+
+
+ <para>
+ There are two steps to using JNDI objects.
+ </para>
+
+ <itemizedlist>
+ <listitem><para>Bind : Which stores a reference to a JMS
+ Object in the provider.</para></listitem>
+ <listitem><para>Lookup : Which tries to retrieve the
+ reference and create the JMS Object. </para></listitem>
+ </itemizedlist>
+
+ <para>
+ There are two objects that would normally be stored in JNDI.
+ </para>
+
+ <itemizedlist>
+ <listitem><para>A ConnectionFactory
+ </para></listitem>
+ <listitem><para>A Destination (Queue or Topic)
+ </para></listitem>
+ </itemizedlist>
+
+
+ <section role="h3" id="UsingQpidwithotherJNDIProviders-Binding">
+ <title>
+ Binding
+ </title>
+
+ <para>
+ Then you need to setup the values that the JNDI provider will
+ used to bind your references, something like this:
+ </para>
+
+ <example>
+ <title>Setup JNDI</title>
+
+
+ <programlisting>
+Hashtable env = new Hashtable(11);
+ env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.fscontext.RefFSContextFactory");
+ env.put(Context.PROVIDER_URL,LOCAL_FILE_PATH_FOR_STORING_BINDS_PATH_MUST_EXIST);
+</programlisting>
+</example>
+
+ <para>
+ These values are then used to create a context to bind your
+ references.
+ </para>
+
+<example>
+ <title>Perform Binding of ConnectionFactory</title>
+
+
+ <programlisting>
+try
+{
+ Context ctx = new InitialContext(env);
+
+ // Create the object to be bound in this case a ConnectionFactory
+ ConnectionFactory factory = null;
+
+ try
+ {
+ factory = new AMQConnectionFactory(CONNECTION_URL);
+ try
+ {
+ ctx.bind(binding, factory);
+ }
+ catch (NamingException e)
+ {
+ //Handle problems with binding. Such as the binding already exists.
+ }
+ }
+ catch (URLSyntaxException amqe)
+ {
+ //Handle any exception with creating ConnnectionFactory
+ }
+}
+catch (NamingException e)
+{
+ //Handle problem creating the Context.
+}
+</programlisting>
+</example>
+
+ <para>
+ To bind a queue instead simply create a AMQQueue object and use
+ that in the binding call.
+ </para>
+
+<example>
+<title> Bind a AMQQueue</title>
+ <programlisting>
+AMQQueue queue = new AMQQueue(QUEUE_URL);
+ctx.bind(binding, queue);
+</programlisting>
+</example>
+ </section>
+
+ <section role="h3" id="UsingQpidwithotherJNDIProviders-Lookup">
+ <title>
+ Lookup
+ </title>
+ <para>
+ You can then get a queue connection factory from the JNDI
+ context.
+ </para>
+
+
+<example>
+<title> Perform Binding of ConnectionFactory</title>
+
+
+ <programlisting>
+ConnectionFactory factory;
+try
+{
+ factory= (ConnectionFactory)ctx.lookup(binding);
+}
+catch (NamingException e)
+{
+ //Handle problems with lookup. Such as binding does not exist.
+}
+</programlisting>
+</example>
+
+ <para>
+ Note that you need not cast the bound object back to an
+ AMQConnectionFactory so all your current JMS apps that
+ use JNDI can start using Qpid straight away.
+ </para>
+
+ <!--h2-->
+ </section>
+
+ <section role="h2" id="UsingQpidwithotherJNDIProviders-HowtocreateaTopicConnectionFactoryandQueueConnectionFactory"><title>
+ How to create a TopicConnectionFactory and
+ QueueConnectionFactory
+ </title>
+ <para>
+ AMQConnectionFactory implements TopicConnectionFactory and
+ QueueConnectionFactory as well as the ConnectionFactory.
+ </para>
+<!--h3-->
+ </section>
+<!--h2-->
+ </section>
+</chapter>
diff --git a/doc/book/src/amqp-advanced-message-queueing-protocol.html b/doc/book/src/amqp-advanced-message-queueing-protocol.html
new file mode 100644
index 0000000000..f40cb718b3
--- /dev/null
+++ b/doc/book/src/amqp-advanced-message-queueing-protocol.html
@@ -0,0 +1,216 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<HTML>
+ <HEAD>
+ <LINK type="text/css" rel="stylesheet" href="resources/space.css">
+ <STYLE type="text/css">
+ .footer {
+ background-image: url('http://cwiki.apache.org/confluence/images/border/border_bottom.gif');
+ background-repeat: repeat-x;
+ background-position: left top;
+ padding-top: 4px;
+ color: #666;
+ clear: both;
+ }
+ .left {
+ padding-top: 5px;
+ float : left;
+ width : 15em;
+ }
+ .pagecontent {
+ float: left;
+ width: 70%;
+ }
+ </STYLE>
+ <SCRIPT type="text/javascript" language="javascript">
+ var hide = null;
+ var show = null;
+ var children = null;
+
+ function init() {
+ /* Search form initialization */
+ var form = document.forms['search'];
+ if (form != null) {
+ form.elements['domains'].value = location.hostname;
+ form.elements['sitesearch'].value = location.hostname;
+ }
+
+ /* Children initialization */
+ hide = document.getElementById('hide');
+ show = document.getElementById('show');
+ children = document.all != null ?
+ document.all['children'] :
+ document.getElementById('children');
+ if (children != null) {
+ children.style.display = 'none';
+ show.style.display = 'inline';
+ hide.style.display = 'none';
+ }
+ }
+
+ function showChildren() {
+ children.style.display = 'block';
+ show.style.display = 'none';
+ hide.style.display = 'inline';
+ }
+
+ function hideChildren() {
+ children.style.display = 'none';
+ show.style.display = 'inline';
+ hide.style.display = 'none';
+ }
+ </SCRIPT>
+ <TITLE>Apache Qpid: Open Source AMQP Messaging - AMQP (Advanced Message Queueing Protocol)</TITLE>
+ <META http-equiv="Content-Type" content="text/html;charset=UTF-8"></HEAD>
+ <BODY onload="init()">
+ <TABLE border="0" cellpadding="2" cellspacing="0" width="100%">
+ <TR class="topBar">
+ <TD align="left" valign="middle" class="topBarDiv" align="left" nowrap="">
+ &nbsp;<A href="index.html" title="Apache Qpid">Apache Qpid</A>&nbsp;&gt;&nbsp;<A href="index.html" title="Index">Index</A>&nbsp;&gt;&nbsp;<A href="" title="AMQP (Advanced Message Queueing Protocol)">AMQP (Advanced Message Queueing Protocol)</A>
+ </TD>
+ <TD align="right" valign="middle" nowrap="">
+ <FORM name="search" action="http://www.google.com/search" method="get">
+ <INPUT type="hidden" name="ie" value="UTF-8">
+ <INPUT type="hidden" name="oe" value="UTF-8">
+ <INPUT type="hidden" name="domains" value="">
+ <INPUT type="hidden" name="sitesearch" value="">
+ <INPUT type="text" name="q" maxlength="255" value="">
+ <INPUT type="submit" name="btnG" value="Google Search">
+ </FORM>
+ </TD>
+ </TR>
+ </TABLE>
+
+ <DIV id="PageContent">
+ <DIV class="pageheader" style="padding: 6px 0px 0px 0px;">
+<DIV>
+<TABLE border="0" width="90%">
+<TR>
+<TD align="left">
+<A href="http://qpid.apache.org/">
+<IMG src="http://qpid.apache.org/images/qpid-logo.png" height="69" width="225" border="0"></A>
+</TD>
+<TD>
+</TD>
+<TD align="right"> <A href="http://www.apache.org/">
+ <IMG src="http://qpid.apache.org/images/asf-logo.png" height="69" width="225" border="0"></A></TD>
+</TR>
+</TABLE>
+</DIV>
+
+ </DIV>
+
+<!--
+
+
+ <div class="pagesubheading" style="margin: 0px 10px 0px 10px;">
+ Added by <a href="/confluence/display/~jonathan.robie@redhat.com">Jonathan Robie</a>, last edited by <a href="/confluence/display/~jonathan.robie@redhat.com">Jonathan Robie</a> on Feb 18, 2009
+ &nbsp;(<a class="noprint" href="/confluence/pages/diffpages.action?pageId=110693&originalId=110695">view change</a>)
+
+ </div>
+-->
+
+ <DIV class="left">
+
+
+
+
+ <DIV class="panel" style="background-color: E0E0FF;border-color: #202080;border-style: solid;border-width: 1px;"><DIV class="panelContent" style="background-color: E0E0FF;">
+<H3><A name="Navigation-ApacheQpid"></A>Apache Qpid</H3>
+<P> <A href="index.html" title="Index">Home</A><BR>
+ <A href="download.html" title="Download">Download</A><BR>
+ <A href="getting-started.html" title="Getting Started">Getting Started</A> <BR>
+ <A href="documentation.html" title="Documentation">Documentation</A><BR>
+ <A href="mailing-lists.html" title="Mailing Lists">Mailing Lists</A><BR>
+ <A href="http://issues.apache.org/jira/browse/qpid" rel="nofollow">Issue Reporting</A><BR>
+ <A href="faq.html" title="FAQ">FAQ/How to</A></P>
+
+<H3><A name="Navigation-Resources"></A>Resources</H3>
+<P> <A href="getting-involved.html" title="Getting Involved">Getting Involved</A><BR>
+ <A href="qpid-integrations.html" title="Qpid Integrations">Qpid Integrated with..</A><BR>
+ <A href="source-repository.html" title="Source Repository">Source Repository</A><BR>
+ <A href="building.html" title="Building">Building Qpid</A><BR>
+ <A href="developer-pages.html" title="Developer Pages">Developer Pages</A><BR>
+ <A href="qpid-management-framework.html" title="Qpid Management Framework">QMF</A></P>
+
+<H3><A name="Navigation-AboutQpid"></A>About Qpid</H3>
+<P> <A href="people.html" title="People">People</A><BR>
+ <A href="license.html" title="License">License</A><BR>
+ <A href="project-status.html" title="Project Status">Project Status</A><BR>
+ <A href="acknowledgments.html" title="Acknowledgments">Acknowledgments</A></P>
+
+<H3><A name="Navigation-AboutAMQP"></A>About AMQP</H3>
+<P> <A href="" title="AMQP (Advanced Message Queueing Protocol)">What is AMQP ?</A><BR>
+ <A href="" title="AMQP (Advanced Message Queueing Protocol)">AMQP Specification Download</A></P>
+
+<P><IMG src="navigation.data/AMQP_logo_71px-small.jpg" align="absmiddle" border="0"></P>
+</DIV></DIV>
+ </DIV>
+
+ <DIV class="pagecontent">
+ <DIV class="wiki-content">
+ <H2><A name="AMQP%28AdvancedMessageQueueingProtocol%29-WhatisAMQP%3F"></A>What is AMQP?</H2>
+
+<P>AMQP <A href="http://www.amqp.org/" rel="nofollow">Advanced Message Queuing Protocol</A> is an open standard designed to support reliable, high-performance messaging over the Internet. AMQP can be used for any distributed or business application, and supports common messaging paradigms like point-to-point, fanout, publish-subscribe, and request-response.</P>
+
+<P>Apache Qpid implements AMQP, including transaction management, queuing, clustering, federation, security, management and multi-platform support.</P>
+
+
+<P>Apache Qpid implements the latest AMQP specification, providing transaction management, queuing, distribution, security, management, clustering, federation and heterogeneous multi-platform support and a lot more. </P>
+
+<P>Apache Qpid is highly optimized, and <A href="amqp-compatibility.html" title="AMQP compatibility">aims to be 100% AMQP Compliant</A>.</P>
+
+<H2><A name="AMQP%28AdvancedMessageQueueingProtocol%29-DownloadtheAMQPSpecifications"></A>Download the AMQP Specifications</H2>
+
+<H3><A name="AMQP%28AdvancedMessageQueueingProtocol%29-AMQPversion010"></A>AMQP version 0-10</H3>
+
+
+<UL>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp.0-10.pdf?version=1" rel="nofollow">AMQP 0-10 Specification (PDF) </A></LI>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp.0-10.xml?version=1" rel="nofollow">AMQP 0-10 Protocol Definition XML </A></LI>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp.0-10.dfd?version=1" rel="nofollow">AMQP 0-10 Protocol Definition DTD </A></LI>
+</UL>
+
+
+<H3><A name="AMQP%28AdvancedMessageQueueingProtocol%29-AMQPversion091"></A>AMQP version 0-9-1</H3>
+
+<UL>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp0-9-1.pdf?version=1" rel="nofollow">AMQP 0-9-1 Specification (PDF) </A></LI>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp0-9-1.xml?version=1" rel="nofollow">AMQP 0-9-1 Protocol Documentation (PDF) </A></LI>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp0-9-1.dtd?version=1" rel="nofollow">AMQP 0-9-1 Protocol Definitions (XML) </A></LI>
+</UL>
+
+
+<H3><A name="AMQP%28AdvancedMessageQueueingProtocol%29-AMQPversion09"></A>AMQP version 0-9</H3>
+
+<UL>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp0-9.pdf?version=1" rel="nofollow">AMQP 0-9 Specification (PDF) </A></LI>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp0-9.xml?version=1" rel="nofollow">AMQP 0-9 Protocol Documentation (PDF) </A></LI>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp0-9.dtd?version=1" rel="nofollow">AMQP 0-9 Protocol Definitions (XML) </A></LI>
+</UL>
+
+
+<H3><A name="AMQP%28AdvancedMessageQueueingProtocol%29-AMQPversion08"></A>AMQP version 0-8</H3>
+
+<UL>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp0-8.pdf?version=1" rel="nofollow">AMQP 0-8 Specification (PDF) </A></LI>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp0-8.dtd?version=1" rel="nofollow">AMQP 0-8 Protocol Documentation (PDF) </A></LI>
+ <LI><A href="https://jira.amqp.org/confluence/download/attachments/720900/amqp0-8.xml?version=1" rel="nofollow">AMQP 0-8 Protocol Definitions (XML) </A></LI>
+</UL>
+
+ </DIV>
+
+<!--
+ -->
+
+ </DIV>
+
+ <DIV class="footer">
+ Apache Qpid, Enterprise AMQP Messaging
+ &nbsp;
+ &copy; 2004-2008 The Apache Software Foundation.
+ &nbsp;
+ (<A href="http://cwiki.apache.org/confluence/pages/editpage.action?pageId=110693">edit this page</A>)
+ </DIV>
+ </BODY>
+</HTML>
diff --git a/doc/book/src/foo.xml b/doc/book/src/foo.xml
deleted file mode 100644
index bdfd2c3c53..0000000000
--- a/doc/book/src/foo.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<section>
-<title>foo</title>
-<table><title/><tgroup cols="2">
-
- <tbody>
- <row>
- <entry>
- Transport
- </entry>
- <entry>
- Description
- </entry>
- </row>
-
- <row>
- <entry>
- tcp
- </entry>
- <entry>
- (default) A cleartext TCP connection
- </entry>
- </row>
- <row>
- <entry>
- ssl
- </entry>
- <entry>
- A secure TLS/SSL over TCP connection
- </entry>
- </row>
- <row>
- <entry>
- rdma
- </entry>
- <entry>
- A Connection using the RDMA interface (typically for an
- Infiniband network)
- </entry>
- </row>
- </tbody>
- </tgroup></table>
-</section> \ No newline at end of file
diff --git a/doc/book/src/schemas.xml b/doc/book/src/schemas.xml
index a622875477..116dc53598 100644
--- a/doc/book/src/schemas.xml
+++ b/doc/book/src/schemas.xml
@@ -1,5 +1,9 @@
<?xml version="1.0"?>
<locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0">
+ <uri resource="AMQP Compatibility.xml" typeId="DocBook"/>
+ <uri resource="Qpid Troubleshooting Guide.xml" typeId="DocBook"/>
+ <uri resource="Book_Info.xml" typeId="DocBook"/>
+ <uri resource="Book_Info.xml" typeId="DocBook"/>
<uri resource="AMQP-Messaging-Broker-CPP.xml" typeId="DocBook"/>
<uri resource="Configure the Broker via config.xml.xml" typeId="DocBook"/>
<uri resource="SSL.xml" typeId="DocBook"/>