You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2017/11/21 22:35:32 UTC
[15/23] qpid-site git commit: NO-JIRA: Update site for Qpid JMS AMQP
0-x release 6.3.0
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1c801de7/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Client-Understanding-Session.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Client-Understanding-Session.html b/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Client-Understanding-Session.html
new file mode 100644
index 0000000..d8de5e9
--- /dev/null
+++ b/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Client-Understanding-Session.html
@@ -0,0 +1,208 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>5.4. Session - Apache Qpid™</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+ <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+ <script type="text/javascript">var _deferredFunctions = [];</script>
+ <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+ <!--[if lte IE 8]>
+ <link rel="stylesheet" href="/ie.css" type="text/css"/>
+ <script type="text/javascript" src="/html5shiv.js"></script>
+ <![endif]-->
+
+ <!-- Redirects for `go get` and godoc.org -->
+ <meta name="go-import"
+ content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+ <meta name="go-source"
+ content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+ </head>
+ <body>
+ <div id="-content">
+ <div id="-top" class="panel">
+ <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+ <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+ <ul id="-global-navigation">
+ <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li>
+ <li><a href="/documentation.html">Documentation</a></li>
+ <li><a href="/download.html">Download</a></li>
+ <li><a href="/discussion.html">Discussion</a></li>
+ </ul>
+ </div>
+
+ <div id="-menu" class="panel" style="display: none;">
+ <div class="flex">
+ <section>
+ <h3>Project</h3>
+
+ <ul>
+ <li><a href="/overview.html">Overview</a></li>
+ <li><a href="/components/index.html">Components</a></li>
+ <li><a href="/releases/index.html">Releases</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Messaging APIs</h3>
+
+ <ul>
+ <li><a href="/proton/index.html">Qpid Proton</a></li>
+ <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+ <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Servers and tools</h3>
+
+ <ul>
+ <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+ <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+ <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Resources</h3>
+
+ <ul>
+ <li><a href="/dashboard.html">Dashboard</a></li>
+ <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+ <li><a href="/resources.html">More resources</a></li>
+ </ul>
+ </section>
+ </div>
+ </div>
+
+ <div id="-search" class="panel" style="display: none;">
+ <form action="http://www.google.com/search" method="get">
+ <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+ <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+ <button type="submit">Search</button>
+ <a href="/search.html">More ways to search</a>
+ </form>
+ </div>
+
+ <div id="-middle" class="panel">
+ <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-jms-amqp-0-x-6.3.0/index.html">Qpid JMS AMQP 0-x 6.3.0</a></li><li><a href="/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/index.html">Apache Qpid JMS AMQP 0-8/0-9/0-9-1</a></li><li>5.4. Session</li></ul>
+
+ <div id="-middle-content">
+ <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">5.4. Session</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Client-Understanding-Connection.html">Prev</a> </td><th align="center" width="60%">Chapter 5. Understanding the Client</th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-Client-Understanding-MessageProducer.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-Client-Understanding-Session"></a>5.4. Session</h2></div></div></div><p>A Session object is a single-threaded context for producing and consuming messages.</p><p>Session objects are created from the Connection. Whilst Session objects are relatively
+ lightweight, patterns utilising a single Session per message are not recommended.</p><p>The number of sessions open per connection at any one time is limited. This value is
+ negotiated when the connection is made. It defaults to 256.</p><p>Qpid JMS Sessions have the ability to prefetch messages to improve consumer performance.
+ This feature is described next.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="JMS-Client-0-8-Client-Understanding-Session-Prefecth"></a>5.4.1. Prefetch</h3></div></div></div><p>Prefetch specifies how many messages the client will optimistically cache for delivery
+ to a consumer. This is a useful parameter to tune that can improve the throughput of an
+ application. The prefetch buffer is scoped per <span class="emphasis"><em>Session</em></span>.</p><p>The size of the prefetch buffer can be tuned per Connection using the connection url
+ option <a class="link" href="JMS-Client-0-8-Connection-URL.html#JMS-Client-0-8-Connection-URL-ConnectionOptions-Maxprefetch"><code class="literal">maxprefetch</code></a> (or JVM wide using the system property <a class="link" href="JMS-Client-0-8-System-Properties.html#JMS-Client-0-8-System-Properties-Maxprefetch"><code class="literal">max_prefetch</code></a>). By default, prefetch defaults to 500.</p><p>There are situations when you may wish to consider reducing the size of prefetch:</p><p>
+ </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>When using a <a class="link" href="http://www.eaipatterns.com/CompetingConsumers.html" target="_top">Competing Consumers</a> pattern, prefetch can give the appearance of unequal
+ division of work. This will be apparent on startup when the queue has messages. The
+ first consumer started will cache prefetch size number of messages, possibly leaving
+ the other consumers with no initial work.</p></li><li class="listitem"><p>When using special queue types (such as LVQs, Sorted Queue and Priority Queues).
+ For these queue types the special delivery rules apply whilst the message resides on
+ the Broker. As soon as the message is sent to the client it delivery order is then
+ fixed. For example, if using a priority queue, and a prefetch of 100, and 100 messages
+ arrive with priority 2, the broker will send these to the client. If then a new
+ message arrives with priority 1, the broker cannot leap frog messages of the lower
+ priority. The priority 1 message will be delivered at the front of the next
+ batch.</p></li><li class="listitem"><p>When message size is large and you do not wish the memory footprint of the
+ application to grow (or suffer an OutOfMemoryError).</p></li></ol></div><p>
+ </p><p>Finally, if using multiple MessageConsumers on a single Session, keep in mind that
+ unless you keep polling <span class="emphasis"><em>all</em></span> consumers, it is possible for some traffic
+ patterns to result in consumer starvation and an application level deadlock. For example, if
+ prefetch is 100, and 100 hundred messages arrive suitable for consumer A, those messages
+ will be prefetched by the session, entirely filling the prefetch buffer. Now if the
+ application performs a blocking <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/MessageConsumer.html#receive()" target="_top">MessageConsumer#receive()</a> for Consumer B on the same Session, the application
+ will hang indefinitely as even if messages suitable for B arrive at the Broker. Those
+ messages can never be sent to the Session as no space is available in prefetch. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Please note, when the acknowledgement mode
+ <span class="emphasis"><em>Session#SESSION_TRANSACTED</em></span> or
+ <span class="emphasis"><em>Session#CLIENT_ACKNOWLEDGE</em></span> is set on a consuming session, the
+ prefetched messages are released from the prefetch buffer on transaction commit/rollback
+ (in case of acknowledgement mode <span class="emphasis"><em>Session#SESSION_TRANSACTED</em></span> ) or
+ acknowledgement of the messages receipt (in case of acknowledgement mode
+ <span class="emphasis"><em>Session#CLIENT_ACKNOWLEDGE</em></span> ). If the consuming application does not
+ commit/rollback the receiving transaction (for example, due to mistakes in application
+ exception handling logic), the prefetched messages continue to remain in the prefetch
+ buffer preventing the delivery of the following messages. As result, the application might
+ stop the receiving of the messages until the transaction is committed/rolled back (for
+ <span class="emphasis"><em>Session#SESSION_TRANSACTED</em></span> ) or received messages are acknowledged
+ (for <span class="emphasis"><em>Session#CLIENT_ACKNOWLEDGE</em></span>).</p></div><p>
+ Settings maxprefetch to 0 ( either globally via JVM system property
+ <a class="link" href="JMS-Client-0-8-System-Properties.html#JMS-Client-0-8-System-Properties-Maxprefetch"><code class="literal">max_prefetch</code></a>
+ or on a connection level as a connection option
+ <a class="link" href="JMS-Client-0-8-Connection-URL.html#JMS-Client-0-8-Connection-URL-ConnectionOptions-Maxprefetch"><code class="literal">maxprefetch</code></a> )
+ switches off the pre-fetching functionality. With maxprefetch=0 messages are fetched one by one without caching on the client.
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> Setting maxprefetch to 0 is recommended in Spring-JMS based applications whenever
+ <span class="emphasis"><em>DefaultMassgeListenerContainer</em></span> is configured with a
+ <span class="emphasis"><em>CachingConnectionFactory</em></span> that has <span class="emphasis"><em>cacheLevel</em></span>
+ set to either <span class="emphasis"><em>CACHE_CONSUMER</em></span> or <span class="emphasis"><em>CACHE_SESSION</em></span>.
+ In these configurations the Qpid JMS <span class="emphasis"><em>Session</em></span> objects remain open in
+ Spring's dynamically scaled pools. If maxprefetch is not 0, any prefetched messages held
+ by the <span class="emphasis"><em>Session</em></span> and any new ones subsequently sent to it (in the
+ background until prefetch is reached) will be effectively by 'stuck' (unavailable to the
+ application) until Spring decides to utilise the cached Session again. This can give the
+ impression that message delivery has stopped even though messages remain of the queue.
+ Setting maxprefetch to 0 prevents this problem from occurring.</p><p> If using maxprefetch > 0 <span class="emphasis"><em>SingleConnectionFactory</em></span> must be
+ used. SingleConnectionFactory does not have the same session/consumer caching behaviour so
+ does not exhibit the same problem. </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="JMS-Client-0-8-Client-Understanding-Session-TemporaryQueues"></a>5.4.2. TemporaryQueues</h3></div></div></div><p>Temporary queues are exposed to Management in the same way as normal queues. Temporary
+ queue names take the form string <code class="literal">TempQueue</code> followed by a random
+ UUID.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="JMS-Client-0-8-Client-Understanding-Session-CreateQueue"></a>5.4.3. CreateQueue</h3></div></div></div><p>In the Client, <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/Session.html#createQueue(java.lang.String)" target="_top">Session#createQueue()</a> accepts either a queue name, or a Binding URL. If only name
+ is specified the destination will be resolved into binding URL:
+ direct://amq.direct//<queue name>?routingkey='<queue name>'&durable='true'. </p><p>Calling Session#createQueue() has no effect on the Broker.</p><p>Reiterating the advice from the JMS javadoc, it is suggested that this method is not
+ generally used. Instead, application should lookup Destinations declared within JNDI.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="JMS-Client-0-8-Client-Understanding-Session-CreateTopic"></a>5.4.4. CreateTopic</h3></div></div></div><p>In the Client, <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/Session.html#createTopic(java.lang.String)" target="_top">Session#createTopic()</a> accepts either a topic name, or a Binding URL. If only name
+ is specified the destination will be resolved into binding URL: topic://amq.topic//<topic
+ name>?routingkey='<topic name>'.</p><p>Calling Session#createTopic() has no effect on the Broker.</p><p>Reiterating the advice from the JMS javadoc, it is suggested that this method is not
+ generally used. Instead, application should lookup Destinations declared within JNDI.</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-Client-Understanding-Connection.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="JMS-Client-0-8-Client-Understanding.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-Client-Understanding-MessageProducer.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">5.3. Connection </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> 5.5. MessageProducer</td></tr></table></div></div>
+
+ <hr/>
+
+ <ul id="-apache-navigation">
+ <li><a href="http://www.apache.org/">Apache</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="/security.html">Security</a></li>
+ <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+ </ul>
+
+ <p id="-legal">
+ Apache Qpid, Messaging built on AMQP; Copyright © 2015
+ The Apache Software Foundation; Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+ Proton, Apache, the Apache feather logo, and the Apache Qpid
+ project logo are trademarks of The Apache Software
+ Foundation; All other marks mentioned may be trademarks or
+ registered trademarks of their respective owners
+ </p>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1c801de7/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Client-Understanding.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Client-Understanding.html b/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Client-Understanding.html
new file mode 100644
index 0000000..22e6f04
--- /dev/null
+++ b/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Client-Understanding.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Chapter 5. Understanding the Client - Apache Qpid™</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+ <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+ <script type="text/javascript">var _deferredFunctions = [];</script>
+ <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+ <!--[if lte IE 8]>
+ <link rel="stylesheet" href="/ie.css" type="text/css"/>
+ <script type="text/javascript" src="/html5shiv.js"></script>
+ <![endif]-->
+
+ <!-- Redirects for `go get` and godoc.org -->
+ <meta name="go-import"
+ content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+ <meta name="go-source"
+ content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+ </head>
+ <body>
+ <div id="-content">
+ <div id="-top" class="panel">
+ <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+ <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+ <ul id="-global-navigation">
+ <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li>
+ <li><a href="/documentation.html">Documentation</a></li>
+ <li><a href="/download.html">Download</a></li>
+ <li><a href="/discussion.html">Discussion</a></li>
+ </ul>
+ </div>
+
+ <div id="-menu" class="panel" style="display: none;">
+ <div class="flex">
+ <section>
+ <h3>Project</h3>
+
+ <ul>
+ <li><a href="/overview.html">Overview</a></li>
+ <li><a href="/components/index.html">Components</a></li>
+ <li><a href="/releases/index.html">Releases</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Messaging APIs</h3>
+
+ <ul>
+ <li><a href="/proton/index.html">Qpid Proton</a></li>
+ <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+ <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Servers and tools</h3>
+
+ <ul>
+ <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+ <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+ <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Resources</h3>
+
+ <ul>
+ <li><a href="/dashboard.html">Dashboard</a></li>
+ <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+ <li><a href="/resources.html">More resources</a></li>
+ </ul>
+ </section>
+ </div>
+ </div>
+
+ <div id="-search" class="panel" style="display: none;">
+ <form action="http://www.google.com/search" method="get">
+ <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+ <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+ <button type="submit">Search</button>
+ <a href="/search.html">More ways to search</a>
+ </form>
+ </div>
+
+ <div id="-middle" class="panel">
+ <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-jms-amqp-0-x-6.3.0/index.html">Qpid JMS AMQP 0-x 6.3.0</a></li><li><a href="/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/index.html">Apache Qpid JMS AMQP 0-8/0-9/0-9-1</a></li><li>Chapter 5. Understanding the Client</li></ul>
+
+ <div id="-middle-content">
+ <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapter 5. Understanding the Client</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Examples-PubSub.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-Client-Understanding-ConnectionFactory.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-8-Client-Understanding"></a>Chapter 5. Understanding the Client</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-Client-Understanding.html#JMS-Client-0-8-Client-Understanding-Overview">5.1. Overview</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Connection
Factory.html">5.2. ConnectionFactory</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Connection.html">5.3. Connection</a></span></dt><dd><dl><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Connection.html#JMS-Client-0-8-Client-Understanding-Connection-Failover">5.3.1. Failover</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Connection.html#JMS-Client-0-8-Client-Understanding-Connection-Heartbeating">5.3.2. Heartbeating</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Connection.html#JMS-Client-0-8-Client-Understanding-Connection-SSL">5.3.3. SSL</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Connection.html#JMS-Client-0-8-Client-Understanding-Connection-MessageCompression">5.3.4. Message Compression</a></span></dt></dl></dd><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Session.html">5.4.
Session</a></span></dt><dd><dl><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Session.html#JMS-Client-0-8-Client-Understanding-Session-Prefecth">5.4.1. Prefetch</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Session.html#JMS-Client-0-8-Client-Understanding-Session-TemporaryQueues">5.4.2. TemporaryQueues</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Session.html#JMS-Client-0-8-Client-Understanding-Session-CreateQueue">5.4.3. CreateQueue</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Session.html#JMS-Client-0-8-Client-Understanding-Session-CreateTopic">5.4.4. CreateTopic</a></span></dt></dl></dd><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-MessageProducer.html">5.5. MessageProducer</a></span></dt><dd><dl><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-MessageProducer.html#JMS-Client-0-8-Client-Un
derstanding-MessageProducer-MandatoryMessage">5.5.1. Mandatory Messages</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-MessageProducer.html#JMS-Client-0-8-Client-Understanding-MessageProducer-CloseWhenNoRoute">5.5.2. Close When No Route</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-MessageProducer.html#JMS-Client-0-8-Client-Understanding-MessageProducer-ImmediateMessage">5.5.3. Immediate Messages</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-MessageProducer.html#JMS-Client-0-8-Client-Understanding-MessageProducer-FlowControl">5.5.4. Flow Control</a></span></dt></dl></dd><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-MessageConsumer.html">5.6. MessageConsumer</a></span></dt><dd><dl><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-MessageConsumer.html#JMS-Client-0-8-Client-Understanding-MessageConsumer-ConsumerSideEffect">
5.6.1. Consumers have Exchange/Queue Declaration and Binding Side Effect</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-MessageConsumer.html#JMS-Client-0-8-Client-Understanding-MessageConsumer-TopicSubscriptions">5.6.2. Topic Subscriptions</a></span></dt><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-MessageConsumer.html#JMS-Client-0-8-Client-Understanding-MessageConsumer-MaximumDeliveryCount">5.6.3. Maximum Delivery Count</a></span></dt></dl></dd><dt><span class="section"><a href="JMS-Client-0-8-Client-Understanding-Destinations.html">5.7. Destinations</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="JMS-Client-0-8-Client-Understanding-Overview"></a>5.1. Overview</h2></div></div></div><p>The Client provides a JMS 1.1 compliant implementation. As such, the primary
+ source of documentation is the <a class="link" href="http://download.oracle.com/otndocs/jcp/7195-jms-1.1-fr-spec-oth-JSpec/" target="_top">JMS specification</a> and the
+ <a class="link" href="http://docs.oracle.com/javaee/6/api//javax/jms/package-summary.html" target="_top">JMS javadocs</a>. This
+ documentation assumes the reader has familiarity with these resources.</p><p>The remainder of this section describes how the Client behaves and the effect(s)
+ making JMS method calls will have on the Broker. </p><p>There areas where the Client provides features beyond those required for JMS
+ compliance. These are described in the sections that follow.</p><p>These sections are also used to bring out differences that may surprise those moving from
+ JMS implementations provided by other vendors.</p><div class="figure"><a id="d0e333"></a><p class="title"><strong>Figure 5.1. Architecture of a typical JMS application</strong></p><div class="figure-contents"><div class="mediaobject"><img alt="Architecture of a typical JMS application" src="images/QpidJmsOverview.png" /></div></div></div><br class="figure-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-Examples-PubSub.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-Client-Understanding-ConnectionFactory.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">4.2. Publish/subscribe example </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> 5.2.
 ConnectionFactory</td></tr></table></div></div>
+
+ <hr/>
+
+ <ul id="-apache-navigation">
+ <li><a href="http://www.apache.org/">Apache</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="/security.html">Security</a></li>
+ <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+ </ul>
+
+ <p id="-legal">
+ Apache Qpid, Messaging built on AMQP; Copyright © 2015
+ The Apache Software Foundation; Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+ Proton, Apache, the Apache feather logo, and the Apache Qpid
+ project logo are trademarks of The Apache Software
+ Foundation; All other marks mentioned may be trademarks or
+ registered trademarks of their respective owners
+ </p>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1c801de7/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Connection-URL.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Connection-URL.html b/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Connection-URL.html
new file mode 100644
index 0000000..9c02553
--- /dev/null
+++ b/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Connection-URL.html
@@ -0,0 +1,269 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Chapter 7. Connection URLs - Apache Qpid™</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+ <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+ <script type="text/javascript">var _deferredFunctions = [];</script>
+ <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+ <!--[if lte IE 8]>
+ <link rel="stylesheet" href="/ie.css" type="text/css"/>
+ <script type="text/javascript" src="/html5shiv.js"></script>
+ <![endif]-->
+
+ <!-- Redirects for `go get` and godoc.org -->
+ <meta name="go-import"
+ content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+ <meta name="go-source"
+ content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+ </head>
+ <body>
+ <div id="-content">
+ <div id="-top" class="panel">
+ <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+ <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+ <ul id="-global-navigation">
+ <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li>
+ <li><a href="/documentation.html">Documentation</a></li>
+ <li><a href="/download.html">Download</a></li>
+ <li><a href="/discussion.html">Discussion</a></li>
+ </ul>
+ </div>
+
+ <div id="-menu" class="panel" style="display: none;">
+ <div class="flex">
+ <section>
+ <h3>Project</h3>
+
+ <ul>
+ <li><a href="/overview.html">Overview</a></li>
+ <li><a href="/components/index.html">Components</a></li>
+ <li><a href="/releases/index.html">Releases</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Messaging APIs</h3>
+
+ <ul>
+ <li><a href="/proton/index.html">Qpid Proton</a></li>
+ <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+ <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Servers and tools</h3>
+
+ <ul>
+ <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+ <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+ <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Resources</h3>
+
+ <ul>
+ <li><a href="/dashboard.html">Dashboard</a></li>
+ <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+ <li><a href="/resources.html">More resources</a></li>
+ </ul>
+ </section>
+ </div>
+ </div>
+
+ <div id="-search" class="panel" style="display: none;">
+ <form action="http://www.google.com/search" method="get">
+ <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+ <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+ <button type="submit">Search</button>
+ <a href="/search.html">More ways to search</a>
+ </form>
+ </div>
+
+ <div id="-middle" class="panel">
+ <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-jms-amqp-0-x-6.3.0/index.html">Qpid JMS AMQP 0-x 6.3.0</a></li><li><a href="/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/index.html">Apache Qpid JMS AMQP 0-8/0-9/0-9-1</a></li><li>Chapter 7. Connection URLs</li></ul>
+
+ <div id="-middle-content">
+ <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapter 7. Connection URLs</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-JNDI-Properties-Format-Destination.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-Binding-URL.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-8-Connection-URL"></a>Chapter 7. Connection URLs</h1></div></div></div><p> In JNDI properties, a Connection URL specifies options for a connection. The format for a
+ Connection URL is: </p><pre class="programlisting">amqp://[<user>:<pass>@][<clientid>]/[<virtualhost>][?<option>='<value>'[&<option>='<value>']*]</pre><p> For instance, the following Connection URL specifies a user name, a password, a client
+ ID, a virtual host ("test"), a broker list with a single broker: a TCP host with the host
+ name <span class="quote">“<span class="quote">localhost</span>”</span> using port 5672: </p><pre class="programlisting">amqp://username:password@clientid/test?brokerlist='tcp://localhost:5672'</pre><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Connection option quoting</h3><p>Take care with the quoting surrounding option values. Each option value
+ <span class="emphasis"><em>must</em></span> be surrounded with single quotes ('). </p></div><p>The Connection URL supports the following options:</p><div class="table"><a id="JMS-Client-0-8-Connection-URL-Options"></a><p class="title"><strong>Table 7.1. Connection URL Options</strong></p><div class="table-contents"><table border="1" summary="Connection URL Options" width="100%"><colgroup><col /><col /><col /></colgroup><thead><tr><th> Option </th><th> Type </th><th> Description </th></tr></thead><tbody><tr><td><a id="JMS-Client-0-8-Connection-URL-ConnectionOptions-Brokerlist"></a> brokerlist </td><td> see below </td><td> List of one or more broker addresses. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-ConnectionOptions-Maxprefetch"></a> maxprefetch </td><td> integer </td><td>
+ <p> The maximum number of pre-fetched messages per Session. If not
+ specified, default value of 500 is used. </p>
+ <p> Note: You can also set the default per-session prefetch value on a
+ client-wide basis by configuring the client using <a class="link" href="JMS-Client-0-8-System-Properties.html" title="Chapter 10. System Properties">Java system
+ properties.</a>
+ </p>
+ </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-ConnectionOptions-SyncPublish"></a> sync_publish </td><td> String </td><td>
+ <p>
+ If the value is 'all' the client library waits for confirmation
+ before returning from a send(), and if the send is unsuccessful the
+ send() will throw a JMSException. (Note this option requires an
+ extension to the AMQP protocol and will only work against a broker of
+ the 0.32 release or later.)
+ </p>
+ </td></tr><tr><td> sync_client_ack </td><td> Boolean </td><td>
+ <p>
+ If set <code class="literal">true</code>, for sessions using <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/Session.html#CLIENT_ACKNOWLEDGE" target="_top">Session#CLIENT_ACKNOWLEDGE</a>,
+ a sync command is sent after every message <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/Message.html#acknowledge()" target="_top">Message#acknowledge()</a>.
+ This ensure that the client awaits the successful processing of the acknowledgement by server before continuing.
+ </p>
+ <p>If <code class="literal">false</code>, the sync is not performed. This will improve performance but will mean
+ duplicate messages are more likely to be received following a failure.
+ </p>
+ <p>
+ Defaults to <code class="literal">true</code>.
+ </p>
+ <p>
+ Note: You can also set the default on a client-wide basis by configuring the
+ client using <a class="link" href="JMS-Client-0-8-System-Properties.html" title="Chapter 10. System Properties">Java system properties.</a>
+ </p>
+ </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-ConnectionOptions-UseLegacyMap"></a> use_legacy_map_msg_format </td><td> Boolean </td><td> If you are using JMS Map messages and deploying a new client with any
+ JMS client older than 0.8 release, you must set this to true to ensure the
+ older clients can understand the map message encoding. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-ConnectionOptions-Failover"></a> failover </td><td> {'singlebroker' | 'roundrobin'
+ , | 'nofailover' |
+ '<class>'} </td><td>
+ <p> This option controls failover behaviour. The method
+ <code class="literal">singlebroker</code> uses only the first broker in the
+ list, <code class="literal">roundrobin</code> will try each broker given in the
+ broker list until a connection is established,
+ <code class="literal">nofailover</code>
+ disables all retry and failover logic. Any other value is interpreted as
+ a classname which must implement the
+ <code class="literal">org.apache.qpid.jms.failover.FailoverMethod</code>
+ interface. </p>
+ <p> The broker list options <code class="literal">retries</code> and
+ <code class="literal">connectdelay</code> (described below) determine the
+ number of times a connection to a broker will be retried and the
+ length of time to wait between successive connection attempts before
+ moving on to the next broker in the list. The failover option
+ <code class="literal">cyclecount</code> controls the number of times to loop
+ through the list of available brokers before finally giving up. </p>
+ <p> Defaults to <code class="literal">roundrobin</code> if the brokerlist contains
+ multiple brokers, or <code class="literal">singlebroker</code> otherwise. </p>
+ </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-ConnectionOptions-CloseWhenNoRoute"></a> closeWhenNoRoute </td><td> boolean </td><td>
+ <p>See <a class="xref" href="JMS-Client-0-8-Client-Understanding-MessageProducer.html#JMS-Client-0-8-Client-Understanding-MessageProducer-CloseWhenNoRoute" title="5.5.2. Close When No Route">Section 5.5.2, “Close When No Route”</a>.</p>
+ </td></tr><tr><td> ssl </td><td> boolean </td><td>
+ <p> If <code class="literal">ssl='true'</code>, use SSL for all broker connections.
+ Overrides any per-broker settings in the brokerlist (see below) entries.
+ If not specified, the brokerlist entry for each given broker is used to
+ determine whether SSL is used. </p>
+ <p> Introduced in version 0.22. </p>
+ </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-ConnectionOptions-CompressMessages"></a>compressMessages</td><td>Boolean</td><td><p>Controls whether the client will compress messages before they they are sent.</p></td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-ConnectionOptions-MessageCompressionThresholdSize"></a>messageCompressionThresholdSize</td><td>Integer</td><td><p>The payload size beyond which the client will start to compress message payloads.</p></td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-ConnectionOptions-populateJMSXUserID"></a>populateJMSXUserID</td><td>boolean</td><td><p>Controls whether a MessageProducer will populate the JMSXUserID value for each sent message using the authenticated username from the connection.
+ It is set to true by default.</p></td></tr></tbody></table></div></div><br class="table-break" /><p> Broker lists are specified using a URL in this format: </p><pre class="programlisting">brokerlist='<transport>://<host>[:<port>][?<param>='<value>'[&<param>='<value>']*]'</pre><p> For instance, this is a typical broker list: </p><pre class="programlisting">brokerlist='tcp://localhost:5672'</pre><p> A broker list can contain more than one broker address separated by semicolons (;). If so, the connection is made to
+ the first broker in the list that is available.
+ </p><div class="example"><a id="d0e1349"></a><p class="title"><strong>Example 7.1. Broker Lists</strong></p><div class="example-contents"><p>A broker list can specify properties to be used when connecting to the broker. This
+ broker list specifies options for configuring heartbeating</p><pre class="programlisting">amqp://guest:guest@test/test?brokerlist='tcp://ip1:5672?heartbeat='5''</pre><p>This broker list specifies some SSL options</p><pre class="programlisting">amqp://guest:guest@test/test?brokerlist='tcp://ip1:5672?ssl='true'&ssl_cert_alias='cert1''</pre><p> This broker list specifies two brokers using the connectdelay and retries broker
+ options. It also illustrates the failover connection URL property. </p><pre class="programlisting">amqp://guest:guest@/test?failover='roundrobin?cyclecount='2''
+ &brokerlist='tcp://ip1:5672?retries='5'&connectdelay='2000';tcp://ip2:5672?retries='5'&connectdelay='2000''
+ </pre></div></div><br class="example-break" /><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Broker option quoting</h3><p>Take care with the quoting surrounding broker option values. Each broker option value
+ <span class="emphasis"><em>must</em></span> be surrounded with their own single quotes ('). This is in
+ addition to the quotes surround the connection option value.</p></div><p>The following broker list options are supported.</p><div class="table"><a id="d0e1374"></a><p class="title"><strong>Table 7.2. Broker List Options</strong></p><div class="table-contents"><table border="1" summary="Broker List Options" width="100%"><colgroup><col /><col /><col /></colgroup><thead><tr><th> Option </th><th> Type </th><th> Description </th></tr></thead><tbody><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-Heartbeat"></a> heartbeat </td><td> Long </td><td> Frequency of heartbeat messages (in seconds). A value of 0 disables
+ heartbeating. <p>For compatibility with old client configuration, option
+ <code class="varname">idle_timeout</code> (in milliseconds) is also
+ supported.</p>
+ </td></tr><tr><td> sasl_mechs </td><td> - </td><td> A space separated list of SASL mechanisms which may be used. If not present then
+ any method offered by the broker may be used.
+ For secure applications, we suggest SCRAM-SHA-256. The
+ ANONYMOUS mechanism is not secure. The PLAIN mechanism is secure only when used
+ together with SSL. SASL External is supported using SSL certification, e.g.
+ <code class="literal">ssl='true'&sasl_mechs='EXTERNAL'</code>
+ </td></tr><tr><td> sasl_encryption </td><td> Boolean </td><td> If <code class="literal">sasl_encryption='true'</code>, the JMS client attempts to
+ negotiate a security layer with the broker using GSSAPI to encrypt the
+ connection. Note that for this to happen, GSSAPI must be selected as the
+ sasl_mech. </td></tr><tr><td> sasl_protocol </td><td> - </td><td> Used only for Kerberos. <code class="literal">sasl_protocol</code> must be set to
+ the principal for the qpidd broker, e.g. <code class="literal">qpidd/</code>
+ </td></tr><tr><td> sasl_server </td><td> - </td><td> For Kerberos, sasl_server must be set
+ to the host for the SASL server, e.g. <code class="literal">sasl.com</code>. </td></tr><tr><td> ssl </td><td> Boolean </td><td>
+ <p>If <code class="literal">ssl='true'</code>, the JMS client will encrypt the
+ connection to this broker using SSL.</p>
+ <p>This can also be set/overridden for all brokers using the Connection
+ URL option <code class="literal">ssl</code>.</p>
+ </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-TrustStore"></a> trust_store </td><td> String </td><td> Path to trust store. Used when using SSL and the Broker's certificate is
+ signed by a private-CA (or a self-signed certificate),</td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-TrustStorePassword"></a> trust_store_password </td><td> String </td><td> Trust store password. Password used to open the trust store. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-TrustedCertsPath"></a> trusted_certs_path </td><td> String </td><td> Path to a file containing trusted peer certificates(in PEM or DER format).
+ Used when supplying the trust information for TLS client auth using PEM/DER
+ files rather than a Java KeyStore. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-KeyStore"></a> key_store </td><td> String </td><td> Path to key store . Used when using SSL and the client must authenticate
+ using client-auth. If the store contains more than one certificate,
+ <code class="literal">ssl_cert_alias</code> must be used to identify the
+ certificate that the client must present to the Broker.</td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-KeyStorePassword"></a> key_store_password </td><td> String </td><td> Key store password. Password used to open the key store. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-ClientCertPath"></a> client_cert_path </td><td> String </td><td> Path to the client certificate file (in PEM or DER format). Used as an
+ alternative to using a Java KeyStore to hold key information
+ for TLS client auth. When used, the <code class="literal">client_cert_priv_key_path</code>
+ must also be supplied. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-ClientCertPrivKeyPath"></a> client_cert_priv_key_path </td><td> String </td><td> Path to the client certificate private key file (in PEM or DER format).
+ Used when supplying the key information for TLS client auth using PEM/DER
+ files rather than a Java KeyStore. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-ClientCertsIntermediaryCertPath"></a> client_cert_intermediary_cert_path </td><td> String </td><td> Path to a file containing any intermediary certificates (in PEM or DER format).
+ Used when supplying the key information for TLS client auth using PEM/DER
+ files rather than a Java KeyStore. Only required where intermediary certificates
+ are required in the certificate chain. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-SslCertAlias"></a> ssl_cert_alias </td><td> String </td><td> If multiple certificates are present in the keystore, the alias will be
+ used to extract the correct certificate. </td></tr><tr><td> ssl_verify_hostname </td><td> Boolean </td><td> This option is used for turning on/off hostname verification when using SSL.
+ It is set to 'true' by default. You can disable verification by setting it to 'false':
+ <code class="literal">ssl_verify_hostname='false'</code>.
+ </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-Retries"></a> retries </td><td> Integer </td><td> The number of times to retry connection to each broker in the broker
+ list. Defaults to 1. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-ConnectDelay"></a> connectdelay </td><td> integer </td><td> Length of time (in milliseconds) to wait before attempting to reconnect.
+ Defaults to 0. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-ConnectTimeout"></a> connecttimeout </td><td> integer </td><td> Length of time (in milliseconds) to wait for the socket connection to
+ succeed. A value of 0 represents an infinite timeout, i.e. the connection
+ attempt will block until established or an error occurs. Defaults to 30000.
+ </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-TcpNoDelay"></a> tcp_nodelay </td><td> Boolean </td><td> If <code class="literal">tcp_nodelay='true'</code>, TCP packet batching is
+ disabled. Defaults to true since Qpid 0.14. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionTrustStore"></a> encryption_trust_store </td><td> String </td><td> Path to trust store. Used when using Message Encryption this path is used for the
+ trust store containing the X509 Certificates of potential recipients.</td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionTrustStorePassword"></a> encyrption_trust_store_password </td><td> String </td><td> Trust store password. Password used to open the Message Encryption trust store. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionRemoteTrustStore"></a> encryption_remote_trust_store </td><td> String </td><td> Remote Trust Store. The address of a message source on the broker which will be used
+ to obtain a trust store containing the X509 Certificates of potential recipients of
+ encrypted messages. </td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionKeyStore"></a> encryption_key_store </td><td> String </td><td> Path to key store. Used when using Message Encryption this path is used for the
+ key store containing the certificates and private keys for all the identities which this client
+ can decrypt.</td></tr><tr><td><a id="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionKeyStorePassword"></a> encyrption_key_store_password </td><td> String </td><td> Key store password. Password used to open the Message Encryption key store. </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-JNDI-Properties-Format-Destination.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-Binding-URL.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">6.4. Destination </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> Chapter 8. Binding URL</td></tr></table></div></div>
+
+ <hr/>
+
+ <ul id="-apache-navigation">
+ <li><a href="http://www.apache.org/">Apache</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="/security.html">Security</a></li>
+ <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+ </ul>
+
+ <p id="-legal">
+ Apache Qpid, Messaging built on AMQP; Copyright © 2015
+ The Apache Software Foundation; Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+ Proton, Apache, the Apache feather logo, and the Apache Qpid
+ project logo are trademarks of The Apache Software
+ Foundation; All other marks mentioned may be trademarks or
+ registered trademarks of their respective owners
+ </p>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1c801de7/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Document-Scope-And-Intended-Audience.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Document-Scope-And-Intended-Audience.html b/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Document-Scope-And-Intended-Audience.html
new file mode 100644
index 0000000..ca81d4f
--- /dev/null
+++ b/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Document-Scope-And-Intended-Audience.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Chapter 2. Document Scope And Intended Audience - Apache Qpid™</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+ <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+ <script type="text/javascript">var _deferredFunctions = [];</script>
+ <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+ <!--[if lte IE 8]>
+ <link rel="stylesheet" href="/ie.css" type="text/css"/>
+ <script type="text/javascript" src="/html5shiv.js"></script>
+ <![endif]-->
+
+ <!-- Redirects for `go get` and godoc.org -->
+ <meta name="go-import"
+ content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+ <meta name="go-source"
+ content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+ </head>
+ <body>
+ <div id="-content">
+ <div id="-top" class="panel">
+ <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+ <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+ <ul id="-global-navigation">
+ <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li>
+ <li><a href="/documentation.html">Documentation</a></li>
+ <li><a href="/download.html">Download</a></li>
+ <li><a href="/discussion.html">Discussion</a></li>
+ </ul>
+ </div>
+
+ <div id="-menu" class="panel" style="display: none;">
+ <div class="flex">
+ <section>
+ <h3>Project</h3>
+
+ <ul>
+ <li><a href="/overview.html">Overview</a></li>
+ <li><a href="/components/index.html">Components</a></li>
+ <li><a href="/releases/index.html">Releases</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Messaging APIs</h3>
+
+ <ul>
+ <li><a href="/proton/index.html">Qpid Proton</a></li>
+ <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+ <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Servers and tools</h3>
+
+ <ul>
+ <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+ <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+ <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Resources</h3>
+
+ <ul>
+ <li><a href="/dashboard.html">Dashboard</a></li>
+ <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+ <li><a href="/resources.html">More resources</a></li>
+ </ul>
+ </section>
+ </div>
+ </div>
+
+ <div id="-search" class="panel" style="display: none;">
+ <form action="http://www.google.com/search" method="get">
+ <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+ <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+ <button type="submit">Search</button>
+ <a href="/search.html">More ways to search</a>
+ </form>
+ </div>
+
+ <div id="-middle" class="panel">
+ <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-jms-amqp-0-x-6.3.0/index.html">Qpid JMS AMQP 0-x 6.3.0</a></li><li><a href="/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/index.html">Apache Qpid JMS AMQP 0-8/0-9/0-9-1</a></li><li>Chapter 2. Document Scope And Intended Audience</li></ul>
+
+ <div id="-middle-content">
+ <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapter 2. Document Scope And Intended Audience</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Introduction.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-JMS-Getting-And-Dependencies.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="JMS-Client-0-8-Document-Scope-And-Intended-Audience"></a>Chapter 2. Document Scope And Intended Audience</h1></div></div></div><p> The intended audience of this document is Java developers who are familiar with the JMS
+ specification. Readers are not required to know all the details of AMQP protocols. However, some
+ knowledge of AMQP basic concepts would be advantageous for reading of this document. </p><p> This document only covers the usage of 0-8, 0-9 and 0-9-1 AMQP protocols with Apache Qpid JMS
+ client for AMQP 0-9-1/0-10. The specifications for these protocols are available from the
+ <a class="link" href="http://www.amqp.org" target="_top">AMQP web site</a>. </p><p> The document covers some specific implementation details of JMS connections, sessions,
+ consumers and producers in <a class="xref" href="JMS-Client-0-8-Client-Understanding.html" title="Chapter 5. Understanding the Client">Chapter 5, <em>Understanding the Client</em></a>. It also
+ demonstrates how to write a simple point to point and simple publish/subscribe application using
+ the Client in <a class="xref" href="JMS-Client-0-8-Examples.html" title="Chapter 4. Examples">Chapter 4, <em>Examples</em></a>. </p><p>The Client supports various configuration options which can be set via JVM system
+ properties, connection URLs and JNDI configuration file. The setting of system properties is
+ described in <a class="xref" href="JMS-Client-0-8-System-Properties.html" title="Chapter 10. System Properties">Chapter 10, <em>System Properties</em></a>. The details of supported
+ options within the connection URLs are given in <a class="xref" href="JMS-Client-0-8-Connection-URL.html" title="Chapter 7. Connection URLs">Chapter 7, <em>Connection URLs</em></a>.
+ The details of JNDI properties format for the Apache Qpid JMS client for AMQP 0-9-1/0-10 is provided in
+ <a class="xref" href="JMS-Client-0-8-JNDI-Properties-Format.html" title="Chapter 6. JNDI Properties Format">Chapter 6, <em>JNDI Properties Format</em></a>. The Qpid destination URL format is covered
+ in <a class="xref" href="JMS-Client-0-8-Binding-URL.html" title="Chapter 8. Binding URL">Chapter 8, <em>Binding URL</em></a>. </p><p>The Client can be used for writing of JMS vendor neutral messaging applications.
+ However, in some cases it might be required to use specific AMQP features. Thus, the Client
+ provides the extended operation set to invoke those features. </p><p>
+ <a class="xref" href="JMS-Client-0-8-Logging.html" title="Chapter 11. Logging">Chapter 11, <em>Logging</em></a> provides the details about turning on client logging
+ which can help in debugging of various issues while developing the messaging applications. </p><p>The details about Client Exceptions are provided in <a class="xref" href="JMS-Client-0-8-Appendix-Exceptions.html" title="Appendix A. Exceptions">Appendix A, <em>Exceptions</em></a></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-Introduction.html">Prev</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-JMS-Getting-And-Dependencies.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Chapter 1. Introduction </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> Chapter 3. Getting the Client And Dependencies</td></tr></table></div></div>
+
+ <hr/>
+
+ <ul id="-apache-navigation">
+ <li><a href="http://www.apache.org/">Apache</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="/security.html">Security</a></li>
+ <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+ </ul>
+
+ <p id="-legal">
+ Apache Qpid, Messaging built on AMQP; Copyright © 2015
+ The Apache Software Foundation; Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+ Proton, Apache, the Apache feather logo, and the Apache Qpid
+ project logo are trademarks of The Apache Software
+ Foundation; All other marks mentioned may be trademarks or
+ registered trademarks of their respective owners
+ </p>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1c801de7/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Examples-PubSub.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Examples-PubSub.html b/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Examples-PubSub.html
new file mode 100644
index 0000000..2110f71
--- /dev/null
+++ b/content/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/JMS-Client-0-8-Examples-PubSub.html
@@ -0,0 +1,216 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>4.2. Publish/subscribe example - Apache Qpid™</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+ <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+ <script type="text/javascript">var _deferredFunctions = [];</script>
+ <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+ <!--[if lte IE 8]>
+ <link rel="stylesheet" href="/ie.css" type="text/css"/>
+ <script type="text/javascript" src="/html5shiv.js"></script>
+ <![endif]-->
+
+ <!-- Redirects for `go get` and godoc.org -->
+ <meta name="go-import"
+ content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+ <meta name="go-source"
+ content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+ </head>
+ <body>
+ <div id="-content">
+ <div id="-top" class="panel">
+ <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+ <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+ <ul id="-global-navigation">
+ <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li>
+ <li><a href="/documentation.html">Documentation</a></li>
+ <li><a href="/download.html">Download</a></li>
+ <li><a href="/discussion.html">Discussion</a></li>
+ </ul>
+ </div>
+
+ <div id="-menu" class="panel" style="display: none;">
+ <div class="flex">
+ <section>
+ <h3>Project</h3>
+
+ <ul>
+ <li><a href="/overview.html">Overview</a></li>
+ <li><a href="/components/index.html">Components</a></li>
+ <li><a href="/releases/index.html">Releases</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Messaging APIs</h3>
+
+ <ul>
+ <li><a href="/proton/index.html">Qpid Proton</a></li>
+ <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+ <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Servers and tools</h3>
+
+ <ul>
+ <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+ <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+ <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Resources</h3>
+
+ <ul>
+ <li><a href="/dashboard.html">Dashboard</a></li>
+ <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+ <li><a href="/resources.html">More resources</a></li>
+ </ul>
+ </section>
+ </div>
+ </div>
+
+ <div id="-search" class="panel" style="display: none;">
+ <form action="http://www.google.com/search" method="get">
+ <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+ <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+ <button type="submit">Search</button>
+ <a href="/search.html">More ways to search</a>
+ </form>
+ </div>
+
+ <div id="-middle" class="panel">
+ <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-jms-amqp-0-x-6.3.0/index.html">Qpid JMS AMQP 0-x 6.3.0</a></li><li><a href="/releases/qpid-jms-amqp-0-x-6.3.0/jms-amqp-0-8-book/index.html">Apache Qpid JMS AMQP 0-8/0-9/0-9-1</a></li><li>4.2. Publish/subscribe example</li></ul>
+
+ <div id="-middle-content">
+ <div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">4.2. Publish/subscribe example</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-8-Examples.html">Prev</a> </td><th align="center" width="60%">Chapter 4. Examples</th><td align="right" width="20%"> <a accesskey="n" href="JMS-Client-0-8-Client-Understanding.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-Examples-PubSub"></a>4.2. Publish/subscribe example</h2></div></div></div><p>In this second example, we illustrate publish/subscribe messaging. Again, 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 (a topic) from
+ the JNDI context. Then we create a producer and two durable subscribers , send a message
+ with the producer. Both subscribers receive the same message.</p><div class="example"><a id="JMS-Client-0-8-Examples-PubSub-Java"></a><p class="title"><strong>Example 4.3. JMS Example - Publish/subscribe Messaging</strong></p><div class="example-contents"><pre class="programlisting">
+import javax.jms.*;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+
+import java.util.Properties;
+
+public class StocksExample {
+
+ public StocksExample() {
+ }
+
+ public static void main(String[] args) throws Exception {
+ StocksExample stocks = new StocksExample();
+ stocks.runTest();
+ }
+
+ private void runTest() throws Exception {
+ Properties properties = new Properties();
+ properties.load(this.getClass().getResourceAsStream("stocks.properties"));
+ Context context = new InitialContext(properties);
+
+ ConnectionFactory connectionFactory
+ = (ConnectionFactory) context.lookup("qpidConnectionFactory");
+ Connection connection = connectionFactory.createConnection();
+ connection.start();
+
+ Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
+ Topic priceTopic = (Topic) context.lookup("myprices"); <a class="co" href="JMS-Client-0-8-Examples-PubSub.html#callout-pubsub-destination" id="pubsub-java-destination"><span><img alt="1" border="0" src="images/callouts/1.png" /></span></a>
+
+ MessageConsumer subscriber1 = session.createDurableSubscriber(priceTopic, "sub1"); <a class="co" href="JMS-Client-0-8-Examples-PubSub.html#callout-pubsub-subscribers" id="pubsub-java-subscribers"><span><img alt="2" border="0" src="images/callouts/2.png" /></span></a>
+ MessageConsumer subscriber2 = session.createDurableSubscriber(priceTopic, "sub2" /*, "price > 150", false*/ );
+ MessageProducer messageProducer = session.createProducer(priceTopic);
+
+ Message message = session.createMessage();
+ message.setStringProperty("instrument", "IBM");
+ message.setIntProperty("price", 100);
+ messageProducer.send(message);
+ session.commit();
+
+ message = subscriber1.receive(1000);
+ session.commit();
+ System.out.println("Subscriber 1 received : " + message);
+
+ message = subscriber2.receive(1000);
+ session.commit();
+ System.out.println("Subscriber 2 received : " + message);
+
+ session.unsubscribe("sub1"); <a class="co" href="JMS-Client-0-8-Examples-PubSub.html#callout-pubsub-unsubscribe" id="pubsub-java-unsubscribe"><span><img alt="3" border="0" src="images/callouts/3.png" /></span></a>
+ session.unsubscribe("sub2");
+ connection.close();
+ context.close();
+ }
+}
+ </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-pubsub-destination"></a><a href="#pubsub-java-destination"><span><img alt="1" border="0" src="images/callouts/1.png" /></span></a> </p></td><td align="left" valign="top"><p>Looks up a destination for the topic with JNDI name myprices.</p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-pubsub-subscribers"></a><a href="#pubsub-java-subscribers"><span><img alt="2" border="0" src="images/callouts/2.png" /></span></a> </p></td><td align="left" valign="top"><p>Creates two durable subscribers, <code class="literal">sub1</code> and
+ <code class="literal">sub2</code>. Durable subscriptions retain messages for the
+ client even when the client is disconnected, until the subscription is
+ unsubscribed. Subscription 2 has a (commented out) message selector argument so
+ you can conveniently experiement with the effect of those. <a class="footnote" href="#ftn.d0e283" id="d0e283"><sup class="footnote">[3]</sup></a></p></td></tr><tr><td align="left" valign="top" width="5%"><p><a id="callout-pubsub-unsubscribe"></a><a href="#pubsub-java-unsubscribe"><span><img alt="3" border="0" src="images/callouts/3.png" /></span></a> </p></td><td align="left" valign="top"><p>Unsubscribes the two durable subscribers, permanently removing the knowledge
+ of the subscriptions from the system. An application would normally
+ <span class="emphasis"><em>NOT</em></span> do this. The typical use-case for durable
+ subsciption is one where the subscription exists over an extended period of
+ time.</p></td></tr></table></div><p>The contents of the <code class="literal">stocks.properties</code> file are shown below.</p><div class="example"><a id="JMS-Client-0-8-Examples-PubSub-PropertiesFile"></a><p class="title"><strong>Example 4.4. JMS Example - Publish/subscribe Messaging - JNDI Properties</strong></p><div class="example-contents"><pre class="programlisting">
+java.naming.factory.initial = org.apache.qpid.jndi.PropertiesFileInitialContextFactory
+connectionfactory.qpidConnectionFactory = amqp://guest:guest@clientid/?brokerlist='tcp://localhost:5672'
+topic.myprices = prices <a class="co" href="JMS-Client-0-8-Examples-PubSub.html#callout-pubsub-properties-destination" id="pubsub-properties-destination"><span><img alt="1" border="0" src="images/callouts/1.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-pubsub-properties-destination"></a><a href="#pubsub-properties-destination"><span><img alt="1" border="0" src="images/callouts/1.png" /></span></a> </p></td><td align="left" valign="top"><p>Defines a topic for which MessageProducers and/or MessageConsumers send and
+ receive messages. The format of this entry is described in <a class="xref" href="JMS-Client-0-8-JNDI-Properties-Format-Topic.html" title="6.3. Topic">Section 6.3, “Topic”</a>.</p></td></tr></table></div><div class="footnotes"><br /><hr style="width:100; text-align:left;margin-left: 0" /><div class="footnote" id="ftn.d0e283"><p><a class="para" href="#d0e283"><sup class="para">[3] </sup></a>Each durable subscription is implemented as a queue on the Broker. See
+ <a class="xref" href="JMS-Client-0-8-Client-Understanding-MessageConsumer.html#JMS-Client-0-8-Client-Understanding-MessageConsumer-TopicSubscriptions" title="5.6.2. Topic Subscriptions">Section 5.6.2, “Topic Subscriptions”</a> for details.</p></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-Examples.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="JMS-Client-0-8-Examples.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="JMS-Client-0-8-Client-Understanding.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Chapter 4. Examples </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-Book.html">Home</a></td><td align="right" valign="top" width="40%"> Chapter 5. Understanding the Client</td></tr></table></div></div>
+
+ <hr/>
+
+ <ul id="-apache-navigation">
+ <li><a href="http://www.apache.org/">Apache</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="/security.html">Security</a></li>
+ <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+ </ul>
+
+ <p id="-legal">
+ Apache Qpid, Messaging built on AMQP; Copyright © 2015
+ The Apache Software Foundation; Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+ Proton, Apache, the Apache feather logo, and the Apache Qpid
+ project logo are trademarks of The Apache Software
+ Foundation; All other marks mentioned may be trademarks or
+ registered trademarks of their respective owners
+ </p>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org