http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Example.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Example.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Example.html.in new file mode 100644 index 0000000..ff83828 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Example.html.in @@ -0,0 +1,78 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapter 1. HelloWorld Example</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-10-Book.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-10-Configuring.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-10-Example"></a>Chapter 1. HelloWorld Example</h1></div></div></div><p>The following program shows how to send and receive a + message using the Apache Qpid JMS client for AMQP 0-10 . JMS programs typically use + JNDI to obtain connection factory and destination objects which + the application needs. In this way the configuration is kept + separate from the application code itself.</p><p>In this example, we create a JNDI context using a + properties file, use the context to lookup a connection factory, + create and start a connection, create a session, and lookup a + destination from the JNDI context. Then we create a producer and + a consumer, send a message with the producer and receive it with + the consumer. This code should be straightforward for anyone + familiar with JMS.</p><div class="example"><a id="d0e12"></a><p class="title"><strong>Example 1.1. "Hello world!" in Java</strong></p><div class="example-contents"><pre class="programlisting" xml:lang="java"> +package org.apache.qpid.example.jmsexample.hello; + +import javax.jms.*; +import javax.naming.Context; +import javax.naming.InitialContext; +import java.util.Properties; + +public class Hello { + + public Hello() { + } + + public static void main(String[] args) { + Hello producer = new Hello(); + producer.runTest(); + } + + private void runTest() { + try { + Properties properties = new Properties(); + properties.load(this.getClass().getResourceAsStream("hello.properties")); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-properties" id="hello-java-properties"><span><img alt="1" border="0" src="images/callouts/1.png" /></span></a> + Context context = new InitialContext(properties); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-context" id="hello-java-context"><span><img alt="2" border="0" src="images/callouts/2.png" /></span></a> + + ConnectionFactory connectionFactory + = (ConnectionFactory) context.lookup("qpidConnectionfactory"); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-connection-factory" id="hello-java-connection-factory"><span><img alt="3" border="0" src="images/callouts/3.png" /></span></a> + Connection connection = connectionFactory.createConnection(); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-connection" id="hello-java-connection"><span><img alt="4" border="0" src="images/callouts/4.png" /></span></a> + connection.start(); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-start" id="hello-java-start"><span><img alt="5" border="0" src="images/callouts/5.png" /></span></a> + + Session session=connection.createSession(false,Session.AUTO_ACKNOWLEDGE);<a class="co" href="JMS-Client-0-10-Example.html#callout-java-session" id="hello-java-session"><span><img alt="6" border="0" src="images/callouts/6.png" /></span></a> + Destination destination = (Destination) context.lookup("topicExchange"); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-destination" id="hello-java-destination"><span><img alt="7" border="0" src="images/callouts/7.png" /></span></a> + + MessageProducer messageProducer = session.createProducer(destination); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-producer" id="hello-java-producer"><span><img alt="8" border="0" src="images/callouts/8.png" /></span></a> + MessageConsumer messageConsumer = session.createConsumer(destination); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-consumer" id="hello-java-consumer"><span><img alt="9" border="0" src="images/callouts/9.png" /></span></a> + + TextMessage message = session.createTextMessage("Hello world!"); + messageProducer.send(message); + + message = (TextMessage)messageConsumer.receive(); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-receive" id="hello-java-receive"><span><img alt="10" border="0" src="images/callouts/10.png" /></span></a> + System.out.println(message.getText()); + + connection.close(); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-close" id="hello-java-close"><span><img alt="11" border="0" src="images/callouts/11.png" /></span></a> + context.close(); <a class="co" href="JMS-Client-0-10-Example.html#callout-java-jndi-close" id="hello-java-jndi-close"><span><img alt="12" border="0" src="images/callouts/12.png" /></span></a> + } + catch (Exception exp) { + exp.printStackTrace(); + } + } +} +</pre></div></div><br class="example-break" /><div class="calloutlist"><table border="0" summary="Callout list"><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-properties"></a><a href="#hello-java-properties"><span><img alt="1" border="0" src="images/callouts/1.png" /></span></a> </p></td><td align="left" valign="top"><p>Loads the JNDI properties file, which specifies connection properties, queues, topics, and addressing options. See below for further details.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-context"></a><a href="#hello-java-context"><span><img alt="2" border="0" src="images/callouts/2.png" /></span></a> </p></td><td align="left" valign="top"><p>Creates the JNDI initial context.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-connection-factory"></a><a href="#hello-java-connection-factory"><span><img alt="3" border="0" src="images/callouts/3.png" /></span></a> </p></td><td align="le ft" valign="top"><p>Creates a JMS connection factory for Qpid.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-connection"></a><a href="#hello-java-connection"><span><img alt="4" border="0" src="images/callouts/4.png" /></span></a> </p></td><td align="left" valign="top"><p>Creates a JMS connection.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-start"></a><a href="#hello-java-start"><span><img alt="5" border="0" src="images/callouts/5.png" /></span></a> </p></td><td align="left" valign="top"><p>Activates the connection.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-session"></a><a href="#hello-java-session"><span><img alt="6" border="0" src="images/callouts/6.png" /></span></a> </p></td><td align="left" valign="top"><p>Creates a session. This session is not transactional (transactions='false'), and messages are automatically acknowledged.</p></td></tr><tr><td align="left" valign="to p" width="5%"><p><a id="callout-java-destination"></a><a href="#hello-java-destination"><span><img alt="7" border="0" src="images/callouts/7.png" /></span></a> </p></td><td align="left" valign="top"><p>Creates a destination for the topic exchange, so senders and receivers can use it.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-producer"></a><a href="#hello-java-producer"><span><img alt="8" border="0" src="images/callouts/8.png" /></span></a> </p></td><td align="left" valign="top"><p>Creates a producer that sends messages to the topic exchange.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-consumer"></a><a href="#hello-java-consumer"><span><img alt="9" border="0" src="images/callouts/9.png" /></span></a> </p></td><td align="left" valign="top"><p>Creates a consumer that reads messages from the topic exchange.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-receive"></a><a href="#he llo-java-receive"><span><img alt="10" border="0" src="images/callouts/10.png" /></span></a> </p></td><td align="left" valign="top"><p>Reads the next available message.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-close"></a><a href="#hello-java-close"><span><img alt="11" border="0" src="images/callouts/11.png" /></span></a> </p></td><td align="left" valign="top"><p>Closes the connection, all sessions managed by the connection, and all senders and receivers managed by each session.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-java-jndi-close"></a><a href="#hello-java-jndi-close"><span><img alt="12" border="0" src="images/callouts/12.png" /></span></a> </p></td><td align="left" valign="top"><p>Closes the JNDI context.</p></td></tr></table></div><p>The contents of the hello.properties file are shown below.</p><div class="example"><a id="d0e80"></a><p class="title"><strong>Example 1.2. JNDI Properties File for "Hello world!" example</strong></p><div class="example-contents"><pre class="programlisting"> +java.naming.factory.initial += org.apache.qpid.jndi.PropertiesFileInitialContextFactory + +# connectionfactory.[jndiname] = [ConnectionURL] +connectionfactory.qpidConnectionfactory += amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672' <a class="co" href="JMS-Client-0-10-Example.html#callout-hello-properties-connectionfactory" id="hello-properties-connectionfactory"><span><img alt="1" border="0" src="images/callouts/1.png" /></span></a> +# destination.[jndiname] = [address_string] +destination.topicExchange = amq.topic <a class="co" href="JMS-Client-0-10-Example.html#callout-hello-properties-destination" id="hello-properties-destination"><span><img alt="2" border="0" src="images/callouts/2.png" /></span></a> + </pre></div></div><br class="example-break" /><div class="calloutlist"><table border="0" summary="Callout list"><tr><td align="left" valign="top" width="5%"><p><a id="callout-hello-properties-connectionfactory"></a><a href="#hello-properties-connectionfactory"><span><img alt="1" border="0" src="images/callouts/1.png" /></span></a> </p></td><td align="left" valign="top"><p>Defines a connection factory from which connections + can be created. The syntax of a ConnectionURL is given in + <a class="xref" href="JMS-Client-0-10-Configuring-JNDI.html" title="2.2. JNDI Properties">Section 2.2, “JNDI Properties”</a>.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-hello-properties-destination"></a><a href="#hello-properties-destination"><span><img alt="2" border="0" src="images/callouts/2.png" /></span></a> </p></td><td align="left" valign="top"><p>Defines a destination for which MessageProducers + and/or MessageConsumers can be created to send and receive + messages. The value for the destination in the properties + file is an address string as described in + <a class="xref" href="JMS-Client-0-10-Configuring-Addresses.html" title="2.4. Addresses">Section 2.4, “Addresses”</a>. In the JMS + implementation MessageProducers are analogous to senders in + the Qpid Message API, and MessageConsumers are analogous to + receivers.</p></td></tr></table></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-10-Book.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-10-Configuring.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Apache Qpid JMS Client for AMQP 0-10 </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-0-10-Book.html">Home</a></td><td align="right" valign="top" width="40%"> Chapter 2. Configuring the Client</td></tr></table></div></div> \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Miscellaneous-MapMessages.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Miscellaneous-MapMessages.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Miscellaneous-MapMessages.html.in new file mode 100644 index 0000000..32bda63 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Miscellaneous-MapMessages.html.in @@ -0,0 +1,48 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">3.2. JMS MapMessage Types</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-10-Miscellaneous.html">Prev</a> </td><th align="center" width="60%">Chapter 3. Miscellaneous</th><td align="right" width="20%"> </td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="JMS-Client-0-10-Miscellaneous-MapMessages"></a>3.2. JMS MapMessage Types</h2></div></div></div><p>Qpid supports the JMS <code class="classname">MapMessage</code> interface, which provides support for maps in messages. The following code shows how to send a <code class="classname">MapMessage</code> in JMS.</p><div class="example"><a id="d0e2269"></a><p class="title"><strong>Example 3.1. Sending a JMS MapMessage</strong></p><div class="example-contents"><pre class="p rogramlisting"> + import java.util.ArrayList; + import java.util.HashMap; + import java.util.List; + import java.util.Map; + + import javax.jms.Connection; + import javax.jms.Destination; + import javax.jms.MapMessage; + import javax.jms.MessageProducer; + import javax.jms.Session; + + import java.util.Arrays; + + // !!! SNIP !!! + + MessageProducer producer = session.createProducer(queue); + + MapMessage m = session.createMapMessage(); + m.setIntProperty("Id", 987654321); + m.setStringProperty("name", "Widget"); + m.setDoubleProperty("price", 0.99); + + List<String> colors = new ArrayList<String>(); + colors.add("red"); + colors.add("green"); + colors.add("white"); + m.setObject("colours", colors); + + Map<String,Double> dimensions = new HashMap<String,Double>(); + dimensions.put("length",10.2); + dimensions.put("width",5.1); + dimensions.put("depth",2.0); + m.setObject("dimensions",dimensions); + + List<List<Integer>> parts = new ArrayList<List<Integer>>(); + parts.add(Arrays.asList(new Integer[] {1,2,5})); + parts.add(Arrays.asList(new Integer[] {8,2,5})); + m.setObject("parts", parts); + + Map<String,Object> specs = new HashMap<String,Object>(); + specs.put("colours", colors); + specs.put("dimensions", dimensions); + specs.put("parts", parts); + m.setObject("specs",specs); + + producer.send(m); + </pre></div></div><br class="example-break" /><p>The following table shows the datatypes that can be sent in a <code class="classname">MapMessage</code>, and the corresponding datatypes that will be received by clients in Python or C++.</p><div class="table"><a id="table-Java-Maps"></a><p class="title"><strong>Table 3.2. Java Datatypes in Maps</strong></p><div class="table-contents"><table border="1" summary="Java Datatypes in Maps"><colgroup><col /><col /><col /></colgroup><thead><tr><th>Java Datatype</th><th>Python</th><th>C++</th></tr></thead><tbody><tr><td>boolean</td><td>bool</td><td>bool</td></tr><tr><td>short</td><td>int | long</td><td>int16</td></tr><tr><td>int</td><td>int | long</td><td>int32</td></tr><tr><td>long</td><td>int | long</td><td>int64</td></tr><tr><td>float</td><td>float</td><td>float</td></tr><tr><td>double</td><td>float</td><td>double</td></tr><tr><td>java.lang.String</td><td>unicode</td><td>std::string</td></tr><tr><td>java.util.UUID</td><td>uuid</ td><td>qpid::types::Uuid</td></tr><tr><td>java.util.Map<a class="footnote" href="#ftn.d0e2351" id="d0e2351"><sup class="footnote">[a]</sup></a></td><td>dict</td><td>Variant::Map</td></tr><tr><td>java.util.List</td><td>list</td><td>Variant::List</td></tr></tbody><tbody class="footnotes"><tr><td colspan="3"><div class="footnote" id="ftn.d0e2351"><p><a class="para" href="#d0e2351"><sup class="para">[a] </sup></a>In Qpid, maps can nest. This goes beyond the functionality required by the JMS specification.</p></div></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-10-Miscellaneous.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="JMS-Client-0-10-Miscellaneous.html">Up</a></td><td align="right" width="40%"> </td></tr><tr><td align="left" valign="top" width="40%">Chapter 3. Miscellan eous </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-0-10-Book.html">Home</a></td><td align="right" valign="top" width="40%"> </td></tr></table></div></div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Miscellaneous.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Miscellaneous.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Miscellaneous.html.in new file mode 100644 index 0000000..0a90239 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/JMS-Client-0-10-Miscellaneous.html.in @@ -0,0 +1,8 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapter 3. Miscellaneous</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-10-Configuring-Logging.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-10-Miscellaneous-MapMessages.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-10-Miscellaneous"></a>Chapter 3. Miscellaneous</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="JMS-Client-0-10-Miscellaneous.html#JMS-Client-0-10-Miscellaneous-Message-Properties">3.1. JMS Message Properties</a></span></dt><dt><span class="section"><a href="JMS-Client-0-10-Miscellaneous-MapMessages.html">3.2. JMS MapMessage Types</a></ span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="JMS-Client-0-10-Miscellaneous-Message-Properties"></a>3.1. JMS Message Properties</h2></div></div></div><p>The following table shows how Qpid Messaging API message + properties are mapped to AMQP 0-10 message properties and + delivery properties. In this table <code class="varname">msg</code> + refers to the Message class defined in the Qpid Messaging API, + <code class="varname">mp</code> refers to an AMQP 0-10 + <code class="varname">message-properties</code> struct, and + <code class="varname">dp</code> refers to an AMQP 0-10 + <code class="varname">delivery-properties</code> struct.</p><div class="table"><a id="d0e2174"></a><p class="title"><strong>Table 3.1. JMS Mapping to AMQP 0-10 Message Properties</strong></p><div class="table-contents"><table border="1" summary="JMS Mapping to AMQP 0-10 Message Properties"><colgroup><col /><col /></colgroup><thead><tr><th>JMS Message Property</th><th>AMQP 0-10 Property<a class="footnote" href="#ftn.d0e2184" id="d0e2184"><sup class="footnote">[a]</sup></a></th></tr></thead><tbody><tr><td>JMSMessageID</td><td>mp.message_id</td></tr><tr><td>qpid.subject<a class="footnote" href="#ftn.d0e2202" id="d0e2202"><sup class="footnote">[b]</sup></a></td><td>mp.application_headers["qpid.subject"]</td></tr><tr><td>JMSXUserID</td><td>mp.user_id</td></tr><tr><td>JMSReplyTo</td><td>mp.reply_to<a class="footnote" href="#ftn.d0e2217" id="d0e2217"><sup class="footnote">[c]</sup></a></td></tr><tr><td>JMSCorrelationID</td><td>mp.correlation_id</td></tr><tr><td>JMSDeliveryM ode</td><td>dp.delivery_mode</td></tr><tr><td>JMSPriority</td><td>dp.priority</td></tr><tr><td>JMSExpiration</td><td>dp.ttl<a class="footnote" href="#ftn.d0e2240" id="d0e2240"><sup class="footnote">[d]</sup></a></td></tr><tr><td>JMSRedelivered</td><td>dp.redelivered</td></tr><tr><td>JMS Properties</td><td>mp.application_headers</td></tr><tr><td>JMSType</td><td>mp.content_type</td></tr></tbody><tbody class="footnotes"><tr><td colspan="2"><div class="footnote" id="ftn.d0e2184"><p><a class="para" href="#d0e2184"><sup class="para">[a] </sup></a>In these entries, <code class="literal">mp</code> refers to an AMQP message property, and <code class="literal">dp</code> refers to an AMQP delivery property.</p></div><div class="footnote" id="ftn.d0e2202"><p><a class="para" href="#d0e2202"><sup class="para">[b] </sup></a>This is a custom JMS property, set automatically by the JMS client implementation.</p></div><div class="footnote" id="ftn.d0e2217"><p><a class="para" href="#d0e2217"><sup class ="para">[c] </sup></a>The reply_to is converted from the protocol representation into an address.</p></div><div class="footnote" id="ftn.d0e2240"><p><a class="para" href="#d0e2240"><sup class="para">[d] </sup></a>JMSExpiration = dp.ttl + currentTime</p></div></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-10-Configuring-Logging.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-10-Miscellaneous-MapMessages.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">2.5. Logging </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-0-10-Book.html">Home</a></td><td align="right" valign="top" width="40%"> 3.2. JMS MapMessage Types</td></tr></table></div></div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/css/style.css ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/css/style.css b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/css/style.css new file mode 100644 index 0000000..8179bf4 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/css/style.css @@ -0,0 +1,131 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +ul { + list-style-type:square; +} + +th { + font-weight: bold; +} + +.navfooter td { + font-size:10pt; +} + +.navheader td { + font-size:10pt; +} + +body { + margin:0; + background:#FFFFFF; + font-family:"Verdana", sans-serif; + font-size:10pt; +} + +.container { + width:950px; + margin:0 auto; +} + +body a { + color:#000000; +} + + +div.book { + margin-left:10pt; + margin-right:10pt; +} + +div.preface { + margin-left:10pt; + margin-right:10pt; +} + +div.chapter { + margin-left:10pt; + margin-right:10pt; +} + +div.section { + margin-left:10pt; + margin-right:10pt; +} + +div.titlepage { + margin-left:-10pt; + margin-right:-10pt; +} + +.calloutlist td { + font-size:10pt; +} + +.table-contents table { + border-spacing: 0px; +} + +.table-contents td { + font-size:10pt; + padding-left:6px; + padding-right:6px; +} + +.chapter h2.title { + font-size:20pt; + color:#0c3b82; +} + +.chapter .section h2.title { + font-size:18pt; + color:#0c3b82; +} + +.section h2.title { + font-size:16pt; + color:#0c3b82; +} + +.section h3.title { + font-size:14pt; + color:#0c3b82; +} + +.section h4.title { + font-size:12pt; + color:#0c3b82; +} + +.section h5.title { + font-size:12pt; + color:#0c3b82; +} + +.section h6.title { + font-size:12pt; + color:#0c3b82; +} + +.toc a { + font-size:9pt; +} + http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/index.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/index.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/index.html.in new file mode 100644 index 0000000..fac5360 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/index.html.in @@ -0,0 +1 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Apache Qpid JMS Client for AMQP 0-10</th></tr><tr><td align="left" width="20%"> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-10-Example.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a id="d0e2"></a>Apache Qpid JMS Client for AMQP 0-10</h1></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="JMS-Client-0-10-Example.html">1. HelloWorld Example</a></span></dt><dt><span class="chapter"><a href="JMS-Client-0-10-Configuring.html">2. Configuring the Client</a></span></dt><dd><dl><dt><span class="section"><a href="JMS-Client-0-10-Configuring.html#JMS-Client-0-10-Configuring-Overview">2.1. Overview</a></span></dt><dt><span class="section"><a hr ef="JMS-Client-0-10-Configuring-JNDI.html">2.2. JNDI Properties</a></span></dt><dd><dl><dt><span class="section"><a href="JMS-Client-0-10-Configuring-JNDI.html#d0e159">2.2.1. Properties File Format</a></span></dt><dt><span class="section"><a href="JMS-Client-0-10-Configuring-JNDI.html#JMS-Client-0-10-Configuring-JNDI-Connection-URL">2.2.2. Connection URLs</a></span></dt></dl></dd><dt><span class="section"><a href="JMS-Client-0-10-Configuring-JVM-Properties.html">2.3. JVM Properties</a></span></dt><dt><span class="section"><a href="JMS-Client-0-10-Configuring-Addresses.html">2.4. Addresses</a></span></dt><dd><dl><dt><span class="section"><a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1449">2.4.1. Address Strings</a></span></dt><dt><span class="section"><a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1473">2.4.2. Subjects</a></span></dt><dt><span class="section"><a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1649">2.4.3. Address String Options</a></span></dt><dt ><span class="section"><a >href="JMS-Client-0-10-Configuring-Addresses.html#section-address-string-bnf">2.4.4. > Address String Grammar</a></span></dt></dl></dd><dt><span class="section"><a >href="JMS-Client-0-10-Configuring-Logging.html">2.5. >Logging</a></span></dt></dl></dd><dt><span class="chapter"><a >href="JMS-Client-0-10-Miscellaneous.html">3. >Miscellaneous</a></span></dt><dd><dl><dt><span class="section"><a >href="JMS-Client-0-10-Miscellaneous.html#JMS-Client-0-10-Miscellaneous-Message-Properties">3.1. > JMS Message Properties</a></span></dt><dt><span class="section"><a >href="JMS-Client-0-10-Miscellaneous-MapMessages.html">3.2. JMS MapMessage >Types</a></span></dt></dl></dd></dl></div><div >class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>2.1. <a >href="JMS-Client-0-10-Configuring-JNDI.html#d0e171">JNDI Properties >syntax</a></dt><dt>2.2. <a >href="JMS-Client-0-10-Configuring-JNDI.html#d0e234">Connection URL >Properties</a></dt><dt>2.3. <a href="JMS-Client-0-10-Configur ing-JNDI.html#d0e417">Broker List Options</a></dt><dt>2.4. <a href="JMS-Client-0-10-Configuring-JVM-Properties.html#d0e585">Config Options For Connection Behaviour</a></dt><dt>2.5. <a href="JMS-Client-0-10-Configuring-JVM-Properties.html#d0e647">Config Options For Session Behaviour</a></dt><dt>2.6. <a href="JMS-Client-0-10-Configuring-JVM-Properties.html#d0e705">Config Options For Consumer Behaviour</a></dt><dt>2.7. <a href="JMS-Client-0-10-Configuring-JVM-Properties.html#d0e812">Config Options For Producer Behaviour</a></dt><dt>2.8. <a href="JMS-Client-0-10-Configuring-JVM-Properties.html#d0e842">Config Options For Threading</a></dt><dt>2.9. <a href="JMS-Client-0-10-Configuring-JVM-Properties.html#d0e882">Config Options For I/O</a></dt><dt>2.10. <a href="JMS-Client-0-10-Configuring-JVM-Properties.html#d0e1002">Config Options For Security</a></dt><dt>2.11. <a href="JMS-Client-0-10-Configuring-JVM-Properties.html#d0e1076">Config Options For Security - Standard JVM properties needed w hen using GSSAPI as the SASL mechanism.</a></dt><dt>2.12. <a href="JMS-Client-0-10-Configuring-JVM-Properties.html#d0e1121">Config Options For Security - Using SSL for securing connections or using EXTERNAL as the SASL mechanism.</a></dt><dt>2.13. <a href="JMS-Client-0-10-Configuring-JVM-Properties.html#d0e1186">Config Options For Security - Standard JVM properties needed when Using SSL for securing connections or using EXTERNAL as the SASL mechanism.</a></dt><dt>2.14. <a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1864">Address String Options</a></dt><dt>2.15. <a href="JMS-Client-0-10-Configuring-Addresses.html#table-node-properties">Node Properties</a></dt><dt>2.16. <a href="JMS-Client-0-10-Configuring-Addresses.html#table-link-properties">Link Properties</a></dt><dt>3.1. <a href="JMS-Client-0-10-Miscellaneous.html#d0e2174">JMS Mapping to AMQP 0-10 Message Properties</a></dt><dt>3.2. <a href="JMS-Client-0-10-Miscellaneous-MapMessages.html#table-Java-Maps">Java Datatypes in Maps</a></dt></dl></div><div class="list-of-examples"><p><strong>List of Examples</strong></p><dl><dt>1.1. <a href="JMS-Client-0-10-Example.html#d0e12">"Hello world!" in Java</a></dt><dt>1.2. <a href="JMS-Client-0-10-Example.html#d0e80">JNDI Properties File for "Hello world!" example</a></dt><dt>2.1. <a href="JMS-Client-0-10-Configuring-JNDI.html#d0e164">JNDI Properties File</a></dt><dt>2.2. <a href="JMS-Client-0-10-Configuring-JNDI.html#d0e400">Broker Lists</a></dt><dt>2.3. <a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1346">Queues</a></dt><dt>2.4. <a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1380">Topics</a></dt><dt>2.5. <a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1487">Using subjects</a></dt><dt>2.6. <a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1584">Subjects with multi-word keys</a></dt><dt>2.7. <a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1706">Assertions on Nodes</a></dt><dt>2.8. <a href="JMS-Client-0-10-Configuring-Addresses. html#d0e1742">Creating a Queue Automatically</a></dt><dt>2.9. <a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1776">Browsing a Queue</a></dt><dt>2.10. <a href="JMS-Client-0-10-Configuring-Addresses.html#d0e1824">Using the XML Exchange</a></dt><dt>2.11. <a href="JMS-Client-0-10-Configuring-Logging.html#d0e2144">log4j Logging Properties</a></dt><dt>3.1. <a href="JMS-Client-0-10-Miscellaneous-MapMessages.html#d0e2269">Sending a JMS MapMessage</a></dt></dl></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-10-Example.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%"> </td><td align="center" width="20%"> </td><td align="right" valign="top" width="40%"> Chapter 1. HelloWorld Example</td></tr></table></div></div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Exceptions.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Exceptions.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Exceptions.html.in new file mode 100644 index 0000000..d22ff41 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Exceptions.html.in @@ -0,0 +1,54 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Appendix A. Exceptions</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Logging-EnablingDebugLogging.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-Maven.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-8-Appendix-Exceptions"></a>Appendix A. Exceptions</h1></div></div></div><p>The methods of the Client throw <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/JMSException.html" target="_top">JMSExceptions</a> in response to error + conditions. Typically the exception's message (#getMessage()) summarises the error condition, + with contextual information being provided by the messages of linked exception(s). To understand + the problem, it is important to read the messages associated with <span class="emphasis"><em>all</em></span> the + linked exceptions.</p><p>The following table describes some of the more common exceptions linked to JMSException + thrown by JMS methods whilst using the client:</p><div class="table"><a id="d0e3006"></a><p class="title"><strong>Table A.1. Exceptions linked to JMSExceptions thrown by JMS methods</strong></p><div class="table-contents"><table border="1" summary="Exceptions linked to JMSExceptions thrown by JMS methods" width="100%"><colgroup><col /><col /><col /></colgroup><thead><tr><th>Linked Exception</th><th>Message</th><th>Explanation/Common Causes</th></tr></thead><tbody><tr><td>AMQUnresolvedAddressException</td><td><span class="emphasis"><em>message varies</em></span></td><td><p>Indicates that the hostname included in the Connection URL's <a class="link" href="JMS-Client-0-8-Connection-URL.html#JMS-Client-0-8-Connection-URL-ConnectionOptions-Brokerlist">brokerlist</a>, could not be resolved, . This could mean that the hostname is + mispelt, or there is name resolution problem.</p></td></tr><tr><td>AMQConnectionFailure</td><td>Connection refused</td><td><p>Indicates that the host included in the Connection URL's <a class="link" href="JMS-Client-0-8-Connection-URL.html#JMS-Client-0-8-Connection-URL-ConnectionOptions-Brokerlist">brokerlist</a>, actively refused the connection. This could mean that the + hostname and/or port number is incorrect, or the Broker may not be + running.</p></td></tr><tr><td>AMQConnectionFailure</td><td>connect timed out</td><td><p>Indicates that the host included in the Connection URL's <a class="link" href="JMS-Client-0-8-Connection-URL.html#JMS-Client-0-8-Connection-URL-ConnectionOptions-Brokerlist">brokerlist</a>, could not be contacted within the <a class="link" href="JMS-Client-0-8-Connection-URL.html#JMS-Client-0-8-Connection-URL-BrokerOptions-ConnectTimeout">connecttimeout</a>. This could mean that the host is shutdown, or a networking + routing problem means the host is unreachable.</p></td></tr><tr><td>AMQConnectionFailure</td><td>General SSL Problem; PKIX path building failed; unable to find valid certification + path to requested target</td><td><p>Indicates that the CA that signed the Broker's certificate is not trusted by + the JVM of the client. If the Broker is using a private-CA (or a self signed + certificate) check that the client has been properly configured with a truststore. See + <a class="xref" href="JMS-Client-0-8-Client-Understanding-Connection.html#JMS-Client-0-8-Client-Understanding-Connection-SSL" title="5.3.3. SSL">Section 5.3.3, “SSL”</a></p></td></tr><tr><td>AMQConnectionFailure / AMQAuthenticationException</td><td>not allowed</td><td><p>Indicates that the user cannot be authenticated by the Broker. Check the + username and/or password elements within the <a class="link" href="JMS-Client-0-8-Connection-URL.html" title="Chapter 7. Connection URLs">Connection URL</a>.</p></td></tr><tr><td>AMQConnectionFailure / AMQSecurityException</td><td>Permission denied: <span class="emphasis"><em>virtualhost name</em></span>; access refused</td><td><p>Indicates that the user is not authorised to connect to the given + virtualhost. The user is recognised by the Broker and is using the correct password + but does not have permission. This exception normally indicates that the user (or + group) has not been permissioned within the Broker's <a class="link" href="../../java-broker/book/Java-Broker-Security-ACLs.html" target="_top">Access Control List + (ACL)</a>.</p></td></tr><tr><td>AMQTimeoutException</td><td>The server's response was not received within the time-out period of %d ms.</td><td> + <p>Indicates that the Broker's response to the request sent by the client was not received + within a timely fashion. The timeout is governed by + <a class="link" href="JMS-Client-0-8-System-Properties.html#JMS-Client-0-8-System-Properties-SyncOpTimeout"> + <code class="literal">qpid.sync_op_timeout</code> + </a>. + </p> + <p>This can be a symptom of a heavily loaded Broker, an overloaded network or a client JVM itself which + is too overloaded to process incoming responses. Check for unreasonably long garbage collection pauses. + </p> + </td></tr><tr><td>AMQSecurityException</td><td>Permission denied: <span class="emphasis"><em>message varies</em></span></td><td><p>Indicates that the user is not authorised to use the given resource or + perform the given operation. This exception normally indicates that the user (or + group) has not been permissioned within the Broker's <a class="link" href="../../java-broker/book/Java-Broker-Security-ACLs.html" target="_top">Access Control List + (ACL)</a>.</p></td></tr><tr><td><a id="JMS-Client-0-8-Appendix-Exceptions-CertificateException"></a>CertificateException</td><td>Unable to find certificate for recipient '<recipient>'</td><td> + <p>When using end to end message encryption, this exception indicates the the message recipent's + principal cannot be found in the truststore. See <a class="xref" href="JMS-Client-Message-Encryption.html" title="Chapter 9. Message Encryption">Chapter 9, <em>Message Encryption</em></a> + </p> + </td></tr></tbody></table></div></div><br class="table-break" /><p>The following table describes some of the more common exceptions linked to JMSException sent + to <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/ExceptionListener.html" target="_top">ExceptionListener</a> + instances.</p><div class="table"><a id="d0e3139"></a><p class="title"><strong>Table A.2. Exceptions linked to JMSExceptions received by ExceptionListeners</strong></p><div class="table-contents"><table border="1" summary="Exceptions linked to JMSExceptions received by ExceptionListeners" width="100%"><colgroup><col /><col /><col /></colgroup><thead><tr><th>Linked Exception</th><th>Message</th><th>Explanation/Common Causes</th></tr></thead><tbody><tr><td><a id="JMS-Client-0-8-Appendix-Exceptions-AMQNoRouteException"></a>AMQNoRouteException</td><td>No Route for message [Exchange: <span class="emphasis"><em>exchange name</em></span>, Routing key: + <span class="emphasis"><em>routing key</em></span>] [error code 312: no route]</td><td><p>Indicate that the named exchange is unable to route a message to at least one + queue.</p> + <p>This will occur if a queue has been improperly bound to an exchange. Use the + Broker's management interface to check the bindings. See <a class="xref" href="JMS-Client-0-8-Client-Understanding-MessageProducer.html#JMS-Client-0-8-Client-Understanding-MessageProducer-MandatoryMessage" title="5.5.1. Mandatory Messages">Section 5.5.1, “Mandatory Messages”</a></p></td></tr><tr><td><a id="JMS-Client-0-8-Appendix-Exceptions-AMQNoConsumersException"></a>AMQNoConsumersException</td><td>Immediate delivery is not possible. [error code 313: no consumers]</td><td><p>Immediate delivery was requested by the MessageProducer, but as there are no + consumers on any target queue, the message has been returned to the publisher. See + <a class="xref" href="JMS-Client-0-8-Client-Understanding-MessageProducer.html#JMS-Client-0-8-Client-Understanding-MessageProducer-ImmediateMessage" title="5.5.3. Immediate Messages">Section 5.5.3, “Immediate Messages”</a> + </p></td></tr><tr><td>AMQDisconnectedException</td><td>Server closed connection and reconnection not permitted</td><td><p>Indicates that the connection was closed by the Broker, and as <a class="link" href="JMS-Client-0-8-Client-Understanding-Connection.html#JMS-Client-0-8-Client-Understanding-Connection-Failover" title="5.3.1. Failover">failover + options</a> are not included in the Connection URL, the client has been unable to + reestablish connection.</p> + <p>The Connection is now closed and any attempt to use either Connection object, or + any objects created from the Connection will receive an <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/IllegalStateException.html" target="_top">IllegalStateException</a>.</p></td></tr><tr><td><a id="JMS-Client-0-8-Appendix-Exceptions-AMQDisconnectedException"></a>AMQDisconnectedException</td><td>Server closed connection and no failover was successful</td><td><p>Indicates that the connection was closed by the Broker. The client has tried + failover according to the rules of the <a class="link" href="JMS-Client-0-8-Client-Understanding-Connection.html#JMS-Client-0-8-Client-Understanding-Connection-Failover" title="5.3.1. Failover">failover + options</a>within the Connection URL, but these attempts were all + unsuccessful.</p> + <p>The Connection is now closed and any attempt to use either Connection object, or + any objects created from the Connection will receive an <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/IllegalStateException.html" target="_top">IllegalStateException</a>.</p></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-8-Logging-EnablingDebugLogging.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-Maven.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">11.2. Enabling Debug </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> Appendix B. Minimal Maven POM</td></tr></table></div></div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-JMS-Extensions-Binding.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-JMS-Extensions-Binding.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-JMS-Extensions-Binding.html.in new file mode 100644 index 0000000..37095e2 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-JMS-Extensions-Binding.html.in @@ -0,0 +1,20 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">C.2. Binding Management</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Appendix-JMS-Extensions.html">Prev</a> </td><th align="center" width="60%">Appendix C. JMS Extensions</th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-PooledConnecytionFactory.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="JMS-Client-0-8-Appendix-JMS-Extensions-Binding"></a>C.2. Binding Management</h2></div></div></div><p>These extensions allow bindings to be created or removed.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="JMS-Client-0-8-Appendix-JMS-Extensions-Binding-Creation"></a>C.2.1. Binding creation</h3></div></div></div><p>The following example illust rates the creation of queue binding to topic exchange with + JMS client.</p><div class="example"><a id="d0e3266"></a><p class="title"><strong>Example C.2. Binding a queue using JMS</strong></p><div class="example-contents"><pre class="programlisting">ConnectionFactory connectionFactory = ... +Connection connection = connectionFactory.createConnection(); +AMQSession<?, ?> session = (AMQSession<?,?>)connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + +... + +AMQShortString queueName = new AMQShortString("testQueue"); +AMQShortString routingKey = new AMQShortString("testRoutingKey"); +AMQDestination destination = (AMQDestination) session.createQueue(queueName.asString()); + +... + +// binding arguments +Map<String, Object> arguments = new HashMap<String, Object>(); +arguments.put("x-filter-jms-selector", "application='app1'"); + +// create binding +session.bindQueue(queueName, routingKey, FieldTable.convertToFieldTable(arguments), + new AMQShortString("amq.topic"), destination);</pre></div></div><br class="example-break" /></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-8-Appendix-JMS-Extensions.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="JMS-Client-0-8-Appendix-JMS-Extensions.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-PooledConnecytionFactory.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Appendix C. JMS Extensions </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> Appendix D. PooledConnectionFactory</td></tr></table></div></div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-JMS-Extensions.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-JMS-Extensions.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-JMS-Extensions.html.in new file mode 100644 index 0000000..ebc4ec0 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-JMS-Extensions.html.in @@ -0,0 +1,15 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Appendix C. JMS Extensions</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Appendix-Maven.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-JMS-Extensions-Binding.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-8-Appendix-JMS-Extensions"></a>Appendix C. JMS Extensions</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="JMS-Client-0-8-Appendix-JMS-Extensions.html#JMS-Client-0-8-Appendix-JMS-Extensions-Queue">C.1. Queue Management</a></span></dt><dd><dl><dt><span class="section"><a href="JMS-Client-0-8-Appendix-JMS-Extensions.html#JMS-Client-0-8- Appendix-JMS-Extensions-Queue-Creation">C.1.1. Queue creation</a></span></dt></dl></dd><dt><span class="section"><a href="JMS-Client-0-8-Appendix-JMS-Extensions-Binding.html">C.2. Binding Management</a></span></dt><dd><dl><dt><span class="section"><a href="JMS-Client-0-8-Appendix-JMS-Extensions-Binding.html#JMS-Client-0-8-Appendix-JMS-Extensions-Binding-Creation">C.2.1. Binding creation</a></span></dt></dl></dd></dl></div><p>This section illustrates using Qpid specific extentions to JMS for the managament of queues, + exchanges and bindings.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>It is not recommended that these extensions are generally used. These interfaces are + subject to change and will not be supported in this form for AMQP 1.0. Instead, the reader is + directed towards the Managment interfaces of the Broker.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="JMS-Client-0-8-Appendix-JMS-Extensions-Queue"></a>C.1. Queue Management</h2></div></div></div><p>These extensions allow queues to be created or removed.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="JMS-Client-0-8-Appendix-JMS-Extensions-Queue-Creation"></a>C.1.1. Queue creation</h3></div></div></div><p>The following example illustrates the creation of the a LVQ queue from a + javax.jms.Session object. Note that this utilises a Qpid specific extension to JMS and + involves casting the session object back to its Qpid base-class.</p><div class="example"><a id="d0e3251"></a><p class="title"><strong>Example C.1. Creation of an LVQ using the Qpid extension to JMS</strong></p><div class="example-contents"><pre class="programlisting">Map<String,Object> arguments = new HashMap<String, Object>(); +arguments.put("qpid.last_value_queue_key","ISIN"); +AMQDestination amqQueue = (AMQDestination) context.lookup("myqueue"); +((AMQSession<?,?>) session).createQueue( + AMQShortString.valueOf(amqQueue.getQueueName()), + amqQueue.isAutoDelete(), + amqQueue.isDurable(), + amqQueue.isExclusive(), + arguments); +</pre></div></div><br class="example-break" /></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-8-Appendix-Maven.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-JMS-Extensions-Binding.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Appendix B. Minimal Maven POM </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> C.2. Binding Management</td></tr></table></div></div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Maven.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Maven.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Maven.html.in new file mode 100644 index 0000000..9941d31 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Maven.html.in @@ -0,0 +1,32 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Appendix B. Minimal Maven POM</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Appendix-Exceptions.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-JMS-Extensions.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-8-Appendix-Maven"></a>Appendix B. Minimal Maven POM</h1></div></div></div><p> The following is a minimal Maven POM required to use the Qpid Client. It is suitable for + use with the <a class="link" href="JMS-Client-0-8-Examples.html" title="Chapter 4. Examples">examples</a> included in this + book.</p><div class="example"><a id="d0e3224"></a><p class="title"><strong>Example B.1. Minimal Maven POM </strong></p><div class="example-contents"><pre class="programlisting"> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>test</groupId> + <artifactId>test</artifactId> + <version>0.0.1-SNAPSHOT</version> + <dependencies> + <dependency> + <groupId>org.apache.qpid</groupId> + <artifactId>qpid-client</artifactId> + <version>6.3.2</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.6.4</version> + </dependency> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-jms_1.1_spec</artifactId> + <version>1.1.1</version> + </dependency> + </dependencies> +</project> + + </pre></div></div><br class="example-break" /><p>Note: We use the SLF4J Binding for Log4J12 here, but any SLF4J Binding could be used + instead. Similarly, Geronimo JMS Spec is used, but any dependency that provides the JMS 1.1 + specification could be substituted.</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-8-Appendix-Exceptions.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-JMS-Extensions.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Appendix A. Exceptions </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> Appendix C. JMS Extensions</td></tr></table></div></div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-PooledConnecytionFactory.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-PooledConnecytionFactory.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-PooledConnecytionFactory.html.in new file mode 100644 index 0000000..72d7cf2 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-PooledConnecytionFactory.html.in @@ -0,0 +1,52 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Appendix D. PooledConnectionFactory</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Appendix-JMS-Extensions-Binding.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-Tomcat-JNDI-Integration.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-8-Appendix-PooledConnecytionFactory"></a>Appendix D. PooledConnectionFactory</h1></div></div></div><p>Qpid client provides <code class="literal">PooledConnectionFactory</code> which is a special + implementation of <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/ConnectionFactory.html" target="_top">ConnectionFactory</a> supporting <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/Connection.html" target="_top">Connection</a> pooling. </p><p> The <code class="literal">PooledConnectionFactory</code> caches a predefined number of connections + thus saving an application which connects frequently time. The <code class="literal">Connection</code> + instance is taken from the pool whenever method + <code class="literal">PooledConnectionFactory#createConnection()</code> is invoked and returned into the + pool when method <code class="literal">Connection#close()</code> is called.</p><p>A user can configure a maximum allowed number of connections to remain in pool (10 by + default) by calling <code class="literal">PooledConnectionFactory#setMaxPoolSize(int)</code>. When number + of connections exceeds the value set for maximum pool size, + <code class="literal">PooledConnectionFactory</code> starts to work as a normal <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/ConnectionFactory.html" target="_top">ConnectionFactory</a> and creates + a new connection every time method <code class="literal">PooledConnectionFactory#createConnection()</code> + is invoked.</p><p>The <a class="link" href="JMS-Client-0-8-Connection-URL.html" title="Chapter 7. Connection URLs">Connection URL</a> is set by invoking + method <code class="literal">PooledConnectionFactory#setConnectionURLString(String)</code>.</p><p>A user can specify the maximum time a connection may remain idle in pool by calling + <code class="literal">PooledConnectionFactory#setConnectionTimeout(long)</code> passing a value in + milliseconds. If connection is not used within the specified interval it is closed + automatically. </p><p>This implementation can be useful in <span class="emphasis"><em>Spring JMS</em></span> based applications. An + example below demonstrates how to configure <code class="literal">PooledConnectionFactory</code> in the + Spring xml configuration. </p><div class="example"><a id="d0e3335"></a><p class="title"><strong>Example D.1. Example of configuring <span class="emphasis"><em>PooledConnectionFactory</em></span> in spring xml + configuration.</strong></p><div class="example-contents"><pre class="programlisting"> +<bean id="pooledConnectionFactory" class="org.apache.qpid.client.PooledConnectionFactory"> + <!-- set maximum number of pool connections to 20--> + <property name="maxPoolSize" value="20"></property> + <!-- set the timeout for connection to remain open in pool without being used --> + <property name="connectionTimeout" value="60000"></property> + <!-- set connection URL as String --> + <property name="connectionURLString" value="amqp://guest:guest@clientid/default?brokerlist='tcp://localhost:5672?retries='300'&failover='nofailover''&maxprefetch='0'"></property> +</bean></pre></div></div><p><br class="example-break" /> + </p><p> + <span class="emphasis"><em>PooledConnectionFactory</em></span> spring bean can be configured with such + <span class="emphasis"><em>spring-jms</em></span> beans like + <span class="emphasis"><em>DefaultMessageListenerContainer</em></span> and <span class="emphasis"><em>JmsTemplate</em></span>. The + example below demonstrates how to do that </p><div class="example"><a id="d0e3358"></a><p class="title"><strong>Example D.2. Examples of configuring <span class="emphasis"><em>PooledConnectionFactory</em></span> with + <span class="emphasis"><em>DefaultMessageListenerContainer</em></span> and + <span class="emphasis"><em>JmsTemplate</em></span>.</strong></p><div class="example-contents"><pre class="programlisting"> +<bean id="jmsProducerTemplate" class="org.springframework.jms.core.JmsTemplate"> + <!-- set reference to pooledConnectionFactory bean --> + <property name="connectionFactory" ref="pooledConnectionFactory"></property> + <property name="defaultDestination" ref="destination" /> +</bean> + +<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> + <!-- set reference to pooledConnectionFactory bean --> + <property name="connectionFactory" ref="pooledConnectionFactory"/> + <property name="destination" ref="destination"/> + <property name="messageListener" ref="messageListener" /> +</bean></pre></div></div><p><br class="example-break" /> + </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If using <code class="literal">DefaultMessageListenerContainer</code> with + <code class="literal">cacheLevel</code> set to <code class="literal">NONE</code> it is important that + <code class="literal">maxConcurrentConsumer</code> does not exceed the value of maximum pool size set + on <code class="literal">PooledConnectionFactory</code> bean. If this is not the case, once the number + of in-use connections reaches the the <span class="emphasis"><em>PooledConnectionFactory#maxPoolSize</em></span> + a new connection will be opened for each and every message receipt i.e. a connection per + message anti-pattern.</p></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-8-Appendix-JMS-Extensions-Binding.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-Tomcat-JNDI-Integration.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">C.2. Binding Management </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> Appendix E. How to bind Qpid destinations and connection factories into Tomcat JNDI</td></tr></table></div></div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-ProducerFlowControl-Impact.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-ProducerFlowControl-Impact.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-ProducerFlowControl-Impact.html.in new file mode 100644 index 0000000..12e0940 --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-ProducerFlowControl-Impact.html.in @@ -0,0 +1,40 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Appendix F. Impact of Broker enforced Producer Flow Control on Client</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Appendix-Tomcat-JNDI-Integration.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> </td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-8-Appendix-ProducerFlowControl-Impact"></a>Appendix F. Impact of Broker enforced Producer Flow Control on Client</h1></div></div></div><p> + Producing sessions can be blocked by the Qpid Broker when <span class="emphasis"><em>Producer Flow Control</em></span> is enforced + either on + <a class="link" href="../../java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html#Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control" target="_top">exceeding of disk quota</a> + or breaching of queue capacity when + <a class="link" href="../../java-broker/book/Java-Broker-Concepts-Queues.html#Java-Broker-Concepts-Queue-OverflowPolicy" target="_top">Producer Flow Control Overflow Policy</a> + is configured on queue. + </p><p> + If a producer sends to a queue which is overfull, the broker will respond by + instructing the client not to send any more messages. The impact of this is + that any future attempts to send will block until the broker rescinds the flow control order. + </p><p> + While blocking the client will periodically log the fact that it is blocked waiting on flow control. + </p><pre class="programlisting"> + WARN Message send delayed by 5s due to broker enforced flow control + WARN Message send delayed by 10s due to broker enforced flow control + </pre><p> + After a set period the send will timeout and throw a JMSException to the calling code. + </p><p> + If such a JMSException is thrown, the message will not be sent to the broker, + however the underlying Session may still be active - in particular if the + Session is transactional then the current transaction will not be automatically + rolled back. Users may choose to either attempt to resend the message, or to + roll back any transactional work and close the Session. + </p><p> + Both the timeout delay and the periodicity of the warning messages can be set + using Java system properties. + </p><p> + The amount of time (in milliseconds) to wait before timing out + is controlled by the property qpid.flow_control_wait_failure. + </p><p> + The frequency at which the log message informing that the producer is flow + controlled is sent is controlled by the system property qpid.flow_control_wait_notify_period. + </p><p> + Adding the following to the command line to start the client would result in a timeout of one minute, + with warning messages every ten seconds: + </p><pre class="programlisting"> + -Dqpid.flow_control_wait_failure=60000 + -Dqpid.flow_control_wait_notify_period=10000 + </pre></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-8-Appendix-Tomcat-JNDI-Integration.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> </td></tr><tr><td align="left" valign="top" width="40%">Appendix E. How to bind Qpid destinations and connection factories into Tomcat JNDI </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> </td></tr></table></div></div> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/qpid-site/blob/b3a90a4a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Tomcat-JNDI-Integration.html.in ---------------------------------------------------------------------- diff --git a/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Tomcat-JNDI-Integration.html.in b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Tomcat-JNDI-Integration.html.in new file mode 100644 index 0000000..91d702e --- /dev/null +++ b/input/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-8-book/JMS-Client-0-8-Appendix-Tomcat-JNDI-Integration.html.in @@ -0,0 +1,123 @@ +<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Appendix E. How to bind Qpid destinations and connection factories into Tomcat JNDI</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Appendix-PooledConnecytionFactory.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-ProducerFlowControl-Impact.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-8-Appendix-Tomcat-JNDI-Integration"></a>Appendix E. How to bind Qpid destinations and connection factories into Tomcat JNDI</h1></div></div></div><p> + Qpid client destinations and connection factories can be registered in external JNDI containers, for example, Tomcat JNDI implementation. + </p><p> + <code class="literal">org.apache.qpid.jndi.ObjectFactory</code> implements + <a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/spi/ObjectFactory.html" target="_top">javax.naming.spi.ObjectFactory</a> + allowing it to create instances of <code class="literal">AMQConnectionFactory</code>, <code class="literal">PooledConnectionFactory</code>, + <code class="literal">AMQConnection</code>, <code class="literal">AMQQueue</code> and <code class="literal">AMQTopic</code> in external JNDI container from + <a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/Reference.html" target="_top">javax.naming.Reference</a>s. + </p><p>Additionally, + <code class="literal">AMQConnectionFactory</code>, <code class="literal">PooledConnectionFactory</code> and <code class="literal">AMQDestination</code> (parent of + <code class="literal">AMQQueue</code> and <code class="literal">AMQTopic</code>) implement + <a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/Referenceable.html" target="_top">javax.naming.Referenceable</a> + allowing creation of <a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/Reference.html" target="_top">javax.naming.Reference</a> objects + for binding in external JNDI implementations. + </p><p> + <code class="literal">org.apache.qpid.jndi.ObjectFactory</code> allows the creation of: + </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> + an instance of <code class="literal">ConnectionFactory</code> from a <code class="literal">Reference</code> containing reference + address (<a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/RefAddr.html" target="_top">javax.naming.RefAddr</a>) + <code class="literal">connectionURL</code> with content set to a + <a class="link" href="JMS-Client-0-8-Connection-URL.html" title="Chapter 7. Connection URLs">Connection URL</a>. + </p></li><li class="listitem"><p> + an instance of <code class="literal">PooledConnectionFactory</code> from a <code class="literal">Reference</code> containing reference + address (<a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/RefAddr.html" target="_top">javax.naming.RefAddr</a>) + <code class="literal">connectionURL</code> with content set to a + <a class="link" href="JMS-Client-0-8-Connection-URL.html" title="Chapter 7. Connection URLs">Connection URL</a>. + </p></li><li class="listitem"><p> + an instance of <code class="literal">AMQConnection</code> from a <code class="literal">Reference</code> containing reference + address (<a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/RefAddr.html" target="_top">javax.naming.RefAddr</a>) + <code class="literal">connectionURL</code> with content set to a + <a class="link" href="JMS-Client-0-8-Connection-URL.html" title="Chapter 7. Connection URLs">Connection URL</a>. + </p></li><li class="listitem"><p> + an instance of <code class="literal">AMQQueue</code> from a <code class="literal">Reference</code> containing reference + address (<a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/RefAddr.html" target="_top">javax.naming.RefAddr</a>) + <code class="literal">address</code> with content set to either <a class="link" href="/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/" target="_top">Address</a> or + <a class="link" href="JMS-Client-0-8-Binding-URL.html" title="Chapter 8. Binding URL">Binding URL</a>. + </p></li><li class="listitem"><p> + an instance of <code class="literal">AMQTopic</code> from a <code class="literal">Reference</code> containing reference + address (<a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/RefAddr.html" target="_top">javax.naming.RefAddr</a>) + <code class="literal">address</code> with content set to either <a class="link" href="/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/" target="_top">Address</a> or + <a class="link" href="JMS-Client-0-8-Binding-URL.html" title="Chapter 8. Binding URL">Binding URL</a>. + </p></li></ul></div><p> + </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> + For <code class="literal">AMQQueue</code> and <code class="literal">AMQTopic</code> prefix <code class="literal">BURL:</code> need + to be specified for <a class="link" href="JMS-Client-0-8-Binding-URL.html" title="Chapter 8. Binding URL">Binding URL</a>. Otherwise, client will try + to parse content using <a class="link" href="/releases/qpid-jms-amqp-0-x-6.3.2/jms-amqp-0-10-book/" target="_top">Address</a> format. + </p></div><p> + </p><p>An example below demonstrates how to create JNDI resources in the Tomcat container using Resource declarations in context.xml + (A Tomcat specific web application configuration file usually added into war under /META-INF/context.xml). + </p><div class="example"><a id="d0e3573"></a><p class="title"><strong>Example E.1. An example of Tomcat context.xml declaring Qpid JNDI resources</strong></p><div class="example-contents"><pre class="programlisting"> +<?xml version='1.0' encoding='utf-8'?> +<!DOCTYPE xml> +<Context> + + <Resource name="jms/connectionFactory" auth="Container" + type="org.apache.qpid.client.AMQConnectionFactory" + factory="org.apache.qpid.jndi.ObjectFactory" + connectionURL="amqp://guest:guest@clientid/?brokerlist='localhost:5672'"/> + + <Resource name="jms/pooledConnectionFactory" auth="Container" + type="org.apache.qpid.client.PooledConnectionFactory" + factory="org.apache.qpid.jndi.ObjectFactory" + connectionURL="amqp://guest:guest@clientid/?brokerlist='localhost:5672'" + maxPoolSize="20" connectionTimeout="60000"/> + + <Resource name="jms/queue" auth="Container" + type="org.apache.qpid.client.AMQQueue" + factory="org.apache.qpid.jndi.ObjectFactory" + address="BURL:direct://amq.direct//myQueue?durable='true'"/> + + <Resource name="jms/topic" auth="Container" + type="org.apache.qpid.client.AMQTopic" + factory="org.apache.qpid.client.AMQConnectionFactory" + address="BURL:topic://amq.topic//myTopic?routingkey='myTopic'"/> + +</Context></pre></div></div><br class="example-break" /><p>In the example above <code class="literal">AMQConnectionFactory</code> would be registered under JNDI name "jms/connectionFactory", + <code class="literal">PooledConnectionFactory</code> would be registered under JNDI name "jms/pooledConnectionFactory", + <code class="literal">Queue</code> "myQueue" would be registered under JNDI name "jms/queue" and JMS <code class="literal">Topic</code> + destination "myTopic" would be registered under JNDI name "jms/topic". (All resources will be bound under "java:comp/env"). + On declaration of <code class="literal">PooledConnectionFactory</code> optional maxPoolSize and connectionTimeout are set to + 20 and 60000 milliseconds accordingly. + </p><p> + The client application can find the resources declared in Tomcat context.xml using the code below: + </p><div class="example"><a id="d0e3597"></a><p class="title"><strong>Example E.2. An example of JNDI lookup for Qpid resources registered in Tomcat JNDI</strong></p><div class="example-contents"><pre class="programlisting"> + Context context = new InitialContext(); + Context environmentContext = (Context)context.lookup("java:comp/env"); + ... + ConnectionFactory connectionFactory = (ConnectionFactory) environmentContext.lookup("jms/connectionFactory"); + ... + Queue queue = (Queue)environmentContext.lookup("jms/queue"); + ... + Topic topic = (Topic)environmentContext.lookup("jms/topic"); + ...</pre></div></div><br class="example-break" /><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> + In order to support backward compatibility <code class="literal">AMQConnectionFactory</code> continues to implement + <a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/spi/ObjectFactory.html" target="_top">javax.naming.spi.ObjectFactory</a> + and can be used to instantiate JNDI resources from + <a class="link" href="http://docs.oracle.com/javase/7/docs/api/javax/naming/Reference.html" target="_top">javax.naming.Reference</a>s. + However, its method <code class="literal">getObjectInstance</code> is marked as <code class="literal">Deprecated</code> and will be + removed in future version of client. For backward compatibility, Qpid JNDI resources can be declared using fully + qualified class names as addresses. That will became unsupported in future version as well. + An example of Tomcat context.xml with declarations of JNDI resources using deprecated factory and addresses is provided below. + </p><div class="example"><a id="d0e3620"></a><p class="title"><strong>Example E.3. An example of Tomcat context.xml declaring Qpid JNDI resources using deprecated <code class="literal">ObjectFactory</code> and deprecated addresses</strong></p><div class="example-contents"><pre class="programlisting"> +<?xml version='1.0' encoding='utf-8'?> +<!DOCTYPE xml> +<Context> + + <Resource name="jms/queue" auth="Container" + type="org.apache.qpid.client.AMQQueue" + factory="org.apache.qpid.client.AMQConnectionFactory" + org.apache.qpid.client.AMQQueue="direct://amq.direct//myDurableQueue?durable='true'"/> + + <Resource name="jms/topic" auth="Container" + type="org.apache.qpid.client.AMQTopic" + factory="org.apache.qpid.client.AMQConnectionFactory" + org.apache.qpid.client.AMQTopic="topic://amq.topic//myTopic?routingkey='myTopic'"/> + + <Resource name="jms/connectionFactory" auth="Container" + type="org.apache.qpid.client.AMQConnectionFactory" + factory="org.apache.qpid.client.AMQConnectionFactory" + org.apache.qpid.client.AMQConnectionFactory="amqp://guest:guest@clientid/?brokerlist='localhost:5672'"/> + +</Context></pre></div></div><p><br class="example-break" /> + </p></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-8-Appendix-PooledConnecytionFactory.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-Appendix-ProducerFlowControl-Impact.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Appendix D. PooledConnectionFactory </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> Appendix F. Impact of Broker enforced Producer Flow Control on Client</td></tr></table></div></div> \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
