diff options
author | Jonathan Robie <jonathan@apache.org> | 2010-01-21 23:13:42 +0000 |
---|---|---|
committer | Jonathan Robie <jonathan@apache.org> | 2010-01-21 23:13:42 +0000 |
commit | af58f5140110d2d8da38773a1b13f6e288f8fa56 (patch) | |
tree | 7b8350ad4c4183152620799512ac9fb3afff6f42 | |
parent | 7009e44fbf44f4053a9067c2228abae0bc2e3ad7 (diff) | |
download | qpid-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.xml | 692 | ||||
-rw-r--r-- | doc/book/src/AMQP Java JMS Messaging Client.xml | 62 | ||||
-rw-r--r-- | doc/book/src/AMQP-Messaging-Broker-Java.xml | 2 | ||||
-rw-r--r-- | doc/book/src/Binding URL Format.xml | 151 | ||||
-rw-r--r-- | doc/book/src/Book.xml | 17 | ||||
-rw-r--r-- | doc/book/src/Book_Info.xml | 54 | ||||
-rw-r--r-- | doc/book/src/Connection URL Format.xml | 360 | ||||
-rw-r--r-- | doc/book/src/How to Use JNDI.xml | 154 | ||||
-rw-r--r-- | doc/book/src/Qpid JMX Management Console.xml | 32 | ||||
-rw-r--r-- | doc/book/src/Qpid Troubleshooting Guide.xml | 28 | ||||
-rw-r--r-- | doc/book/src/System Properties.xml | 396 | ||||
-rw-r--r-- | doc/book/src/Using Qpid with other JNDI Providers.xml | 194 | ||||
-rw-r--r-- | doc/book/src/amqp-advanced-message-queueing-protocol.html | 216 | ||||
-rw-r--r-- | doc/book/src/foo.xml | 42 | ||||
-rw-r--r-- | doc/book/src/schemas.xml | 4 |
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 & 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> +<Exchange Class>://<Exchange Name>/[<Destination>]/[<Queue>][?<option>='<value>'[&<option>='<value>']] +</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//<Queue Name> + </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/<Topic Subscription>/ + </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://[<user>:<pass>@][<clientid>]<virtualhost>[?<option>='<value>'[&<option>='<value>']] + </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&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='<broker url>[;<broker url>]' +</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> +<transport>://<host>[:<port>][?<option>='<value>'[&<option>='<value>']] +</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='<method>[?<options>]' +</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'&failover='roundrobin' +amqp://guest:guest@/test?brokerlist='vm://:1;vm://:2'&failover='roundrobin?cyclecount='20'' +amqp://guest:guest@client/test?brokerlist='tcp://localhost;tcp://redundant-server:5673?ssl='true''&failover='roundrobin' +amqp://guest:guest@/test?brokerlist='vm://:1'&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 = <path to JNDI File> +</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.<jndiname></emphasis> this is the <xref linkend="qpid_Connection-20URL-20Format"/> that the connection + factory will use to perform connections. + <emphasis>queue.<jndiname></emphasis> this defines a jms queue or in + amqp a amq.direct exchange + <emphasis>topic.<jndiname></emphasis> this defines a jms topic or in + amqp a amq.topic exchange + <emphasis>destination.<jndiname></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><jndiname></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><jndiname></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 & 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=""> + <A href="index.html" title="Apache Qpid">Apache Qpid</A> > <A href="index.html" title="Index">Index</A> > <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 + (<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 + + © 2004-2008 The Apache Software Foundation. + + (<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"/> |