You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jr...@apache.org on 2017/04/26 10:57:02 UTC

[07/40] qpid-site git commit: QPID-7756: Simplify release scripts and add some for new components

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.in
new file mode 100644
index 0000000..cf24d6a
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.in
@@ -0,0 +1,7 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">E.3.&#160;Installing Oracle BDB JE</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html">Prev</a>&#160;</td><th align="center" width="60%">Appendix&#160;E.&#160;Miscellaneous</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Appendix-Queue-Declare-Arguments.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE"></a>E.3.&#160;Installing Oracle BDB JE</h2></div></div></div><p> The Oracle BDB JE is not distributed with Apache Qpid owing to license considerations.. </p><p>If you wish to use a BDB Virtualhost Node, BDB Virtualhost, or BDB HA Virtualhost Node you
+      must make the BDB JE's JAR available on the Broker's classpath. </p><p> Download the Oracle BDB JE 5.0.104 release <a class="link" href="http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html?ssSourceSiteId=ocomen" target="_top">from the Oracle website.</a>
+    </p><p> The download has a name in the form je-5.0.104.tar.gz. It is
+      recommended that you confirm the integrity of the download by verifying the MD5. </p><p>Copy the je-5.0.104.jar from within the release into
+        <code class="literal">${QPID_HOME}/lib</code> folder.</p><pre class="programlisting">Unix:
+cp je-5.0.104.jar qpid-broker-7.0.0-SNAPSHOT/lib</pre><pre class="programlisting">Windows:
+copy je-5.0.104.jar qpid-broker-7.0.0-SNAPSHOT\lib</pre></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Miscellaneous.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Appendix-Queue-Declare-Arguments.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">E.2.&#160;Installing External JDBC Driver&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;Appendix&#160;F.&#160;Queue Declaration Arguments supported by the Broker</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Miscellaneous.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Miscellaneous.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Miscellaneous.html.in
new file mode 100644
index 0000000..36a7d3f
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Miscellaneous.html.in
@@ -0,0 +1,9 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Appendix&#160;E.&#160;Miscellaneous</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Appendix-Queue-Alerts.html">Prev</a>&#160;</td><th align="center" width="60%">&#160;</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="Java-Broker-Miscellaneous"></a>Appendix&#160;E.&#160;Miscellaneous</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="Java-Broker-Miscellaneous.html#Java-Broker-Miscellaneous-JVM-Verification">E.1. JVM Installation verification</a></span></dt><dd><dl><dt><span class="section"><a href="Java-Broker-Miscellaneous.html#Java-Broker-Miscellaneous-JVM-
 Verification-Windows">E.1.1. Verify JVM on Windows</a></span></dt><dt><span class="section"><a href="Java-Broker-Miscellaneous.html#Java-Broker-Miscellaneous-JVM-Verification-Unix">E.1.2. Verify JVM on Unix</a></span></dt></dl></dd><dt><span class="section"><a href="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html">E.2. Installing External JDBC Driver</a></span></dt><dt><span class="section"><a href="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html">E.3. Installing Oracle BDB JE</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Miscellaneous-JVM-Verification"></a>E.1.&#160;JVM Installation verification</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Miscellaneous-JVM-Verification-Windows"></a>E.1.1.&#160;Verify JVM on Windows</h3></div></div></div><p> Firstly confirm that the JAVA_HOME environment variable is set
  correctly by typing the
+        following at the command prompt: </p><pre class="programlisting">echo %JAVA_HOME%</pre><p> If JAVA_HOME is set you will see something similar to the following: </p><pre class="screen">c:"\PROGRA~1"\Java\jdk1.8.0_121\
+      </pre><p> Then confirm that a Java installation (1.8 or higher) is available: </p><pre class="programlisting">java -version</pre><p> If java is available on the path, output similar to the following will be seen: </p><pre class="screen">java version "1.8.0_121-b13"
+Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
+Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Miscellaneous-JVM-Verification-Unix"></a>E.1.2.&#160;Verify JVM on Unix</h3></div></div></div><p> Firstly confirm that the JAVA_HOME environment variable is set correctly by typing the
+        following at the command prompt: </p><pre class="programlisting">echo $JAVA_HOME</pre><p> If JAVA_HOME is set you will see something similar to the following: </p><pre class="screen">/usr/java/jdk1.8.0_121
+      </pre><p> Then confirm that a Java installation (1.8 or higher) is available: </p><pre class="programlisting">java -version</pre><p> If java is available on the path, output similar to the following will be seen: </p><pre class="screen">java version "1.8.0_121-b13"
+        Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
+        Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)</pre></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Appendix-Queue-Alerts.html">Prev</a>&#160;</td><td align="center" width="20%">&#160;</td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Appendix&#160;D.&#160;Queue Alerts&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;E.2.&#160;Installing External JDBC Driver</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Background-Recovery.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Background-Recovery.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Background-Recovery.html.in
new file mode 100644
index 0000000..9c4e2d4
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Background-Recovery.html.in
@@ -0,0 +1,14 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.8.&#160;Background Recovery</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Consumers.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Message-Compression.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Runtime-Background-Recovery"></a>9.8.&#160;Background Recovery</h2></div></div></div><p>On startup of the Broker, or restart of a Virtualhost, the Broker restores all durable
+    queues and their messages from disk. In the Broker's default mode the Virtualhosts do not become
+    active until this recovery process completes. If queues have a large number of entries, this may
+    take considerable time. During this time no messaging can be performed.</p><p>The Broker has a background recovery feature allows the system to return to operation
+    sooner. If enabled the recovery process takes place in the background allow producers and
+    consumers to begin work earlier.</p><p>The feature respects the message delivery order requirements of standard queues, that is any
+    messages arriving whilst the background recovery is in flight won't overtake older messages
+    still to be recovered from disk. There is an exception for the out of order queue types whilst
+    background recovery is in flight. For instance, with priority queues older lower priority
+    messages may be delivered before newer, higher priority.</p><p>To activate the feature, set a <a class="link" href="Java-Broker-Management-Managing-Entities.html#Java-Broker-Management-Managing-Entities-General" title="7.1.&#160;General Description">context variable</a>
+    <code class="literal">use_async_message_store_recovery</code> at the desired Virtualhost, or at Broker or
+    higher to enable the feature broker-wide.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The background recovery feature does not write operational log messages to indicate its
+      progress. This means messages <a class="link" href="Java-Broker-Appendix-Operation-Logging.html#Java-Broker-Appendix-Operation-Logging-Message-MST-1004">MST-1004</a> and <a class="link" href="Java-Broker-Appendix-Operation-Logging.html#Java-Broker-Appendix-Operation-Logging-Message-MST-1005">MST-1005</a> will not
+      be seen.</p></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Runtime-Consumers.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Message-Compression.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.7.&#160;Consumers&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;9.9.&#160;Message Compression</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Close-Connection-When-No-Route.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Close-Connection-When-No-Route.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Close-Connection-When-No-Route.html.in
new file mode 100644
index 0000000..363f350
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Close-Connection-When-No-Route.html.in
@@ -0,0 +1,30 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.5.&#160;Closing client connections on unroutable mandatory messages</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Handling-Undeliverable-Messages.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Flow-To-Disk.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Runtime-Close-Connection-When-No-Route"></a>9.5.&#160;Closing client connections on unroutable mandatory messages</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Close-Connection-When-No-Route-Summary"></a>9.5.1.&#160;Summary</h3></div></div></div><p>
+        Due to asynchronous nature of AMQP 0-8/0-9/0-9-1 protocols sending a message with a routing key for which no queue binding exist results
+        in either message being bounced back (if it is mandatory or immediate) or discarded on broker side otherwise.
+    </p><p>
+        When a 'mandatory' message is returned back, the Apache Qpid JMS client for AMQP 0-9-1/0-10 conveys this by delivering
+        an <span class="emphasis"><em>AMQNoRouteException</em></span> through the configured ExceptionListener on the Connection.
+        This does not cause channel or connection closure, however it requires a special exception handling
+        on client side in order to deal with <span class="emphasis"><em>AMQNoRouteExceptions</em></span>.
+        This could potentially be a problem when using various messaging frameworks (e.g. Mule)
+        as they usually close the connection on receiving any JMSException.
+    </p><p>
+        In order to simplify application handling of scenarios where 'mandatory' messages
+        are being sent to queues which do not actually exist, the Apache Qpid Broker for Java can be configured such that
+        it will respond to this situation by closing the connection
+        rather than returning the unroutable message to the client as it normally should.
+        From the application perspective, this will result in failure of synchronous operations in progress such as a session commit() call.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>This feature affects only transacted sessions.</p><p>
+            The Apache Qpid JMS client for AMQP 0-9-1/0-10 sends 'mandatory' messages when using Queue destinations
+            and 'non-mandatory' messages when using Topic destinations.
+        </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Close-Connection-When-No-Route-Configuration"></a>9.5.2.&#160;Configuring <span class="emphasis"><em>closeWhenNoRoute</em></span></h3></div></div></div><p>
+        The Broker attribute <span class="emphasis"><em>closeWhenNoRoute</em></span> can be set to specify this feature on broker side.
+        By default, it is turned on. Setting <span class="emphasis"><em>closeWhenNoRoute</em></span> to <span class="emphasis"><em>false</em></span> switches it off.
+    </p><p>
+        Setting the <span class="emphasis"><em>closeWhenNoRoute</em></span> in the JMS client connection URL can override the broker configuration
+        on a connection specific basis, for example :
+    </p><div class="example"><a id="d0e6200"></a><p class="title"><strong>Example&#160;9.1.&#160;Disable feature to close connection on unroutable messages with client URL</strong></p><div class="example-contents"><pre class="screen">
+amqp://guest:guest@clientid/?brokerlist='tcp://localhost:5672'&amp;closeWhenNoRoute='false'</pre></div></div><br class="example-break" /><p>
+       If no value is specified on the client the broker setting will be used. If client setting is specified then it will take precedence
+       over the broker-wide configuration. If the client specifies and broker does not support this feature the warning will be logged.
+    </p></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Runtime-Handling-Undeliverable-Messages.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Flow-To-Disk.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.4.&#160;Handing Undeliverable Messages&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;9.6.&#160;Flow to Disk</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Connection-Limit.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Connection-Limit.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Connection-Limit.html.in
new file mode 100644
index 0000000..a0435d6
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Connection-Limit.html.in
@@ -0,0 +1,24 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.10.&#160;Connection Limits</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Message-Compression.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Memory.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Runtime-Connection-Limit"></a>9.10.&#160;Connection Limits</h2></div></div></div><p>
+     Each connection to the Broker consumes resources while it is connected. In order to protect
+     the Broker against malfunctioning (or malicious) client processes, it is possible to limit the
+     number of connections that can be active on any given port.
+   </p><p>
+       Connection limits on AMQP ports are controlled by an attribute "maxOpenConnections" on
+       the port. By default this takes the value of the context variable
+       <code class="literal">qpid.port.max_open_connections</code> which in itself is defaulted to the
+       value <code class="literal">-1</code> meaning there is no limit.
+   </p><p>
+       If the interpolated value of <code class="literal">maxOpenConnections</code> on an AMQP port is a
+       positive integer, then when that many active connections have been established no new
+       connections will be allowed (until an existing connection has been closed). Any such
+       rejection of a connection will be accompanied by the operational log message
+       <a class="link" href="Java-Broker-Appendix-Operation-Logging.html#Java-Broker-Appendix-Operation-Logging-Message-PRT-1005">PRT-1005</a>.
+   </p><p>
+       The context variable <code class="literal">qpid.port.open_connections_warn_percent</code> can be
+       used to control when a warning log message is generated as the number of open connections
+       approaches the limit for the port. The default value of this variable is
+       <code class="literal">80</code> meaning that if more the number of open connections to the port
+       has exceeded 80% of the given limit then the operatinal log message
+       <a class="link" href="Java-Broker-Appendix-Operation-Logging.html#Java-Broker-Appendix-Operation-Logging-Message-PRT-1004">PRT-1004</a>
+       will be generated.
+   </p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Runtime-Message-Compression.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Memory.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.9.&#160;Message Compression&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;9.11.&#160;Memory</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Consumers.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Consumers.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Consumers.html.in
new file mode 100644
index 0000000..8d04d22
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Consumers.html.in
@@ -0,0 +1,32 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.7.&#160;Consumers</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Flow-To-Disk.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Background-Recovery.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Runtime-Consumers"></a>9.7.&#160;Consumers</h2></div></div></div><p>A Consumer is created when an AMQP connection wishes to receive messages from a message source (such as a
+    Queue).  The standard behaviours of consumers are defined by the respective AMQP specification, however in addition
+    to the standard behaviours a number of Qpid specific enhancements are available</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Consumers-Prioirty"></a>9.7.1.&#160;Priority</h3></div></div></div><p>By default, when there are multiple competing consumers attached to the same message source, the Broker
+      attempts to distribute messages from the queue in a "fair" manner. Some use cases require allocation of messages
+      to consumers to be based on the "priority" of the consumer. Where there are multiple consumers having differing
+      priorities, the Broker will always attempt to deliver a message to a higher priority consumer before attempting
+      delivery to a lower priority consumer. That is, a lower priority consumer will only receive a message if no
+      higher priority consumers currently have credit available to consume the message, or those consumers have declined
+      to accept the message (for instance because it does not meet the criteria of any selectors associated with the
+      consumer).</p><p>Where a consumer is created with no explicit priority provided, the consumer is given the highest possible
+      priority.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6246"></a>9.7.1.1.&#160;Creating a Consumer with a non-standard priority</h4></div></div></div><p>
+        In AMQP 0-9 and 0-9-1 the priority of the consumer can be set by adding an entry into the table provided as the
+        <code class="literal">arguments</code> field (known as the <code class="literal">filter</code> field on AMQP 0-9) of the
+        <code class="literal">basic.consume</code> method. The key for the entry must be the literal short string
+        <code class="literal">x-priority</code>, and the value of the entry must be an integral number in the range
+        -2<sup>31</sup> to 2<sup>31</sup>-1.
+      </p><p>
+        In AMQP 0-10 the priority of the consumer can be set in the map provided as the <code class="literal">arguments</code>
+        field of the <code class="literal">message.subscribe</code> method. The key for the entry must be the literal string
+        <code class="literal">x-priority</code>, and the value of the entry must be an integral number in the range
+        -2<sup>31</sup> to 2<sup>31</sup>-1.
+      </p><p>
+        In AMQP 1.0 the priority of the consumer is set in the <code class="literal">properties</code> map of the
+        <code class="literal">attach</code> frame where the broker side of the link represents the sending side of the link.
+        The key for the entry must be the literal string <code class="literal">priority</code>, and the value of the entry must
+        be an integral number in the range -2<sup>31</sup> to 2<sup>31</sup>-1.
+      </p><p>
+        When using the Qpid JMS client for AMQP 0-9/0-9-1/0-10 the consumer priority can be set in the address being
+        used for the Destination object.
+
+        </p><div class="table"><a id="d0e6305"></a><p class="title"><strong>Table&#160;9.1.&#160;Setting the consumer priority</strong></p><div class="table-contents"><table border="1" summary="Setting the consumer priority"><colgroup><col /><col /></colgroup><thead><tr><th>Syntax</th><th>Example</th></tr></thead><tbody><tr><td>Addressing</td><td>myqueue : { link : { x-subscribe: { arguments : { x-priority : '10' } } } }</td></tr><tr><td>Binding URL</td><td>direct://amq.direct/myqueue/myqueue?x-qpid-replay-priority='10'</td></tr></tbody></table></div></div><p><br class="table-break" />
+      </p></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Runtime-Flow-To-Disk.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Background-Recovery.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.6.&#160;Flow to Disk&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;9.8.&#160;Background Recovery</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in
new file mode 100644
index 0000000..ad06b56
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in
@@ -0,0 +1,41 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.2.&#160;Disk Space Management</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Producer-Transaction-Timeout.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Runtime-Disk-Space-Management"></a>9.2.&#160;Disk Space Management</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control"></a>9.2.1.&#160;Disk quota-based flow control</h3></div></div></div><p>
+        The Apache Qpid Broker for Java supports a flow control mechanism which is triggered when a configured
+        disk quota is exceeded. This is supported by the BDB and Derby virtualhosts.
+    </p><p>
+        This functionality blocks all producers on reaching the disk overflow limit. When consumers consume the
+        messages, causing disk space usage to falls below the underflow limit, the producers are unblocked and continue
+        working as normal.
+    </p><p>
+        Two limits can be configured:
+    </p><p>
+        overfull limit - the maximum space on disk (in bytes).
+    </p><p>
+        underfull limit - when the space on disk drops below this limit, producers are allowed to resume publishing.
+    </p><p>
+        The overfull and underful limit can be specified when a new virtualhost is created or an exiting virtualhost is
+        edited. This can be done using the Store Overflow and Store Underfull settings within the virtual host creation
+        and edit dialogue. If editing an existing virtualhost, the virtualhost must be restarted for the new values to
+        take effect.
+    </p><p>
+        The disk quota functionality is based on "best effort" principle. This means the broker cannot guarantee that
+        the disk space limit will not be exceeded. If several concurrent transactions are started before the limit is
+        reached, which collectively cause the limit to be exceeded, the broker may allow all of them to be committed.
+    </p><p>
+        The Broker will also impose flow control if the filesystem hosting a virtualhost exceeds a <a class="link" href="Java-Broker-Management-Managing-Broker.html#Java-Broker-Management-Managing-Broker-Context-StoreFilesystemMaxUsagePercent">configured
+        percentage.</a>.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+            The <span class="emphasis"><em>Producer Flow Control</em></span> can be configured on individual queue using
+            <span class="emphasis"><em>Producer Flow Control</em></span> overflow policy.
+            For more details, please read<a class="xref" href="Java-Broker-Concepts-Queues.html#Java-Broker-Concepts-Queue-OverflowPolicy" title="4.7.7.&#160;Controlling Queue Size">Section&#160;4.7.7, &#8220;Controlling Queue Size&#8221;</a>.
+        </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e5979"></a>9.2.1.1.&#160;Broker Log Messages for quota flow control</h4></div></div></div><p>
+            There are two broker log messages that may occur if flow control through disk quota limits is enabled. When
+            the virtual host is blocked due to exceeding of the disk quota limit the following message appears in the
+            broker log
+            </p><pre class="programlisting">
+                [vh(/test)/ms(BDBMessageStore)] MST-1008 : Store overfull, flow control will be enforced
+            </pre><p>
+            When virtual host is unblocked after cleaning the disk space the following message appears in the broker log
+            </p><pre class="programlisting">
+                [vh(/test)/ms(BDBMessageStore)] MST-1009 : Store overfull condition cleared
+            </pre><p>
+        </p></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Runtime.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Producer-Transaction-Timeout.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Chapter&#160;9.&#160;Runtime&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;9.3.&#160;Producer Transaction Timeout</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Flow-To-Disk.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Flow-To-Disk.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Flow-To-Disk.html.in
new file mode 100644
index 0000000..a483ae0
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Flow-To-Disk.html.in
@@ -0,0 +1,16 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.6.&#160;Flow to Disk</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Close-Connection-When-No-Route.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Consumers.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Runtime-Flow-To-Disk"></a>9.6.&#160;Flow to Disk</h2></div></div></div><p>Flow to disk limits the amount of <a class="link" href="Java-Broker-Runtime-Memory.html" title="9.11.&#160;Memory">direct and heap memory</a>
+    that can be occupied by messages. Once this
+    limit is reached any new transient messages and all existing transient messages will be
+    transferred to disk. Newly arriving transient messages will continue to go to the disk until the
+    cumulative size of all messages falls below the limit once again.</p><p>By default the Broker makes 40% of the max direct available memory for messages. This memory is
+    divided between all the queues across all virtual hosts defined on the Broker with a percentage
+    calculated according to their current queue size. These calculations are refreshed periodically
+    by the housekeeping cycle.</p><p>For example if there are two queues, one containing 75MB and the second 100MB messages
+    respectively and the Broker has 1GB direct memory with the default of 40% available for messages.
+    The first queue will have a target size of 170MB and the second 230MB. Once 400MB is taken by
+    messages, messages will begin to flow to disk. New messages will cease to flow to disk when
+    their cumulative size falls beneath 400MB.</p><p>Flow to disk is configured by Broker context variable
+      <code class="literal">broker.flowToDiskThreshold</code>. It is expressed as a size in bytes and defaults
+    to 40% of the JVM maximum heap size.</p><p>Log message <a class="link" href="Java-Broker-Appendix-Operation-Logging.html#Java-Broker-Appendix-Operation-Logging-Message-BRK-1014">BRK-1014</a> is written when the feature activates. Once the total space of all messages
+    decreases below the threshold, the message <a class="link" href="Java-Broker-Appendix-Operation-Logging.html#Java-Broker-Appendix-Operation-Logging-Message-BRK-1015">BRK-1015</a> is written
+    to show that the feature is no longer active.</p></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Runtime-Close-Connection-When-No-Route.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Consumers.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.5.&#160;Closing client connections on unroutable mandatory messages&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;9.7.&#160;Consumers</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html.in
new file mode 100644
index 0000000..b5f0709
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html.in
@@ -0,0 +1,39 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.4.&#160;Handing Undeliverable Messages</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Producer-Transaction-Timeout.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Close-Connection-When-No-Route.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Runtime-Handling-Undeliverable-Messages"></a>9.4.&#160;Handing Undeliverable Messages</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Handling-Undeliverable-Messages-Introduction"></a>9.4.1.&#160;Introduction</h3></div></div></div><p> Messages that cannot be delivered successfully to a c
 onsumer (for instance, because the
+   client is using a transacted session and rolls-back the transaction) can be made available on
+   the queue again and then subsequently be redelivered, depending on the precise session
+   acknowledgement mode and messaging model used by the application. This is normally desirable
+   behaviour that contributes to the ability of a system to withstand unexpected errors. However, it
+   leaves open the possibility for a message to be repeatedly redelivered (potentially indefinitely),
+   consuming system resources and preventing the delivery of other messages. Such undeliverable
+   messages are sometimes known as poison messages.</p><p>For an example, consider a stock ticker application that has been designed to consume prices
+   contained within JMS TextMessages. What if inadvertently a BytesMessage is placed onto the queue?
+   As the ticker application does not expect the BytesMessage, its processing might fail and cause it
+   to roll-back the transaction, however the default behavior of the Broker would mean that the
+   BytesMessage would be delivered over and over again, preventing the delivery of other legitimate
+   messages, until an operator intervenes and removes the erroneous message from the queue. </p><p>Qpid has maximum delivery count and dead-letter queue (DLQ) features which can be used in
+   concert to construct a system that automatically handles such a condition. These features are
+   described in the following sections.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Handling-Undeliverable-Messages-Maximum-Delivery-Count"></a>9.4.2.&#160;Maximum Delivery Count</h3></div></div></div><p> Maximum delivery count is a property of a queue. If a consumer application is unable to
+   process a message more than the specified number of times, then the broker will either route the
+   message to a dead-letter queue (if one has been defined), or will discard the message. </p><p> In order for a maximum delivery count to be enforced, the consuming client
+    <span class="emphasis"><em>must</em></span> call <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/Session.html#rollback()" target="_top">Session#rollback()</a> (or <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/Session.html#recover()" target="_top">Session#recover()</a> if the session is not transacted). It is during the Broker's
+   processing of Session#rollback() (or Session#recover()) that if a message has been seen
+   at least the maximum number of times then it will move the message to the DLQ or discard the
+   message.</p><p>If the consuming client fails in another manner, for instance, closes the connection, the
+   message will not be re-routed and consumer application will see the same poison message again
+   once it reconnects.</p><p> If the consuming application is using AMQP 0-9-1, 0-9, or 0-8 protocols, it is necessary to
+   set the client system property <code class="varname">qpid.reject.behaviour</code> or connection or binding
+   URL option <code class="varname">rejectbehaviour</code> to the value <code class="literal">server</code>.</p><p>It is possible to determine the number of times a message has been sent to a consumer via
+   the Management interfaces, but is not possible to determine this information from a message client.
+   Specifically, the optional JMS message header <span class="property">JMSXDeliveryCount</span> is not
+   supported.</p><p>Maximum Delivery Count can be specified when a new queue is created or using the the
+   queue declare property <span class="property">x-qpid-maximum-delivery-count</span></p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Handling-Undeliverable-Messages-Dead-Letter-Queues"></a>9.4.3.&#160;Dead Letter Queues (DLQ)</h3></div></div></div><p>A Dead Letter Queue (DLQ) acts as an destination for messages that have somehow exceeded the
+   normal bounds of processing and is utilised to prevent disruption to flow of other messages. When
+   a DLQ is enabled for a given queue if a consuming client indicates it no longer wishes the
+   receive the message (typically by exceeding a Maximum Delivery Count) then the message is moved
+   onto the DLQ and removed from the original queue. </p><p>The DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue. These
+   are named convention QueueName<span class="emphasis"><em>_DLE</em></span> and QueueName<span class="emphasis"><em>_DLQ</em></span>.</p><p>DLQs can be enabled when a new queue is created
+   or using the queue declare property <span class="property">x-qpid-dlq-enabled</span>.</p><div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Avoid excessive queue depth</h3><p>Applications making use of DLQs <span class="emphasis"><em>should</em></span> make provision for the frequent
+    examination of messages arriving on DLQs so that both corrective actions can be taken to resolve
+    the underlying cause and organise for their timely removal from the DLQ. Messages on DLQs
+    consume system resources in the same manner as messages on normal queues so excessive queue
+    depths should not be permitted to develop.</p></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Runtime-Producer-Transaction-Timeout.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Close-Connection-When-No-Route.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.3.&#160;Producer Transaction Timeout&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;9.5.&#160;Closing client connections on unroutable mandatory messages</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Memory.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Memory.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Memory.html.in
new file mode 100644
index 0000000..5938492
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Memory.html.in
@@ -0,0 +1,127 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.11.&#160;Memory</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Connection-Limit.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-High-Availability.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Runtime-Memory"></a>9.11.&#160;Memory</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Memory-Introduction"></a>9.11.1.&#160;Introduction</h3></div></div></div><p>
+      Understanding how the Qpid broker uses memory is essential to running a high performing and reliable service.
+      A wrongly configured broker can exhibit poor performance or even crash with an <code class="literal">OutOfMemoryError</code>.
+      Unfortunately, memory usage is not a simple topic and thus requires some in depth explanations.
+      This page should give the required background information to make informed decisions on how to configure your broker.
+    </p><p>
+      <a class="xref" href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Types" title="9.11.2.&#160;Types of Memory">Section&#160;9.11.2, &#8220;Types of Memory&#8221;</a> explains the two different kinds of Java memory most relevant to the broker.
+      <a class="xref" href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Usage" title="9.11.3.&#160;Memory Usage in the Broker">Section&#160;9.11.3, &#8220;Memory Usage in the Broker&#8221;</a> goes on to explain which parts of the broker use what kind of memory.
+      <a class="xref" href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Low-Memory" title="9.11.4.&#160;Low Memory Conditions">Section&#160;9.11.4, &#8220;Low Memory Conditions&#8221;</a> explains what happens when the system runs low on memory.
+      <a class="xref" href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Defaults" title="9.11.5.&#160;Defaults">Section&#160;9.11.5, &#8220;Defaults&#8221;</a> lays out the default settings of the Qpid broker.
+      Finally, <a class="xref" href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Tuning" title="9.11.6.&#160;Memory Tuning the Broker">Section&#160;9.11.6, &#8220;Memory Tuning the Broker&#8221;</a> gives some advice on tuning your broker.
+    </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Memory-Types"></a>9.11.2.&#160;Types of Memory</h3></div></div></div><p>
+      While Java has a couple of different internal memory types we will focus on the two types that are relevant to the Qpid broker.
+      Both of these memory types are taken from the same physical memory (RAM).
+    </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6452"></a>9.11.2.1.&#160;Heap</h4></div></div></div><p>
+        Normally, all objects are allocated from Java's heap memory.
+        Once, nothing references an object it is cleaned up by the Java Garbage Collector and it's memory returned to the heap.
+        This works fine for most use cases.
+        However, when interacting with other parts of the operating system using Java's heap is not ideal.
+        This is where the so called direct memory comes into play.
+      </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6457"></a>9.11.2.2.&#160;Direct</h4></div></div></div><p>
+        The world outside of the JVM, in particular the operating system (OS), does not know about Java heap memory and uses other structures like C arrays.
+        In order to interact with these systems Java needs to copy data between its own heap memory and these native structures.
+        This can become a bottle neck when there is a lot of exchange between Java and the OS like in I/O (both disk and network) heavy applications.
+        Java's solution to this is to allow programmers to request <code class="literal">ByteBuffer</code>s from so called direct memory.
+        This is an opaque structure that <span class="emphasis"><em>might</em></span> have an underlying implementation that makes it efficient to interact with the OS.
+        Unfortunately, the GC is not good at tracking direct memory and in general it is inadvisable to use direct memory for regular objects.
+      </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Memory-Usage"></a>9.11.3.&#160;Memory Usage in the Broker</h3></div></div></div><p>
+      This section lists some note worthy users of memory within the broker and where possible lists their usage of heap and direct memory.
+      Note that to ensure smooth performance some heap memory should remain unused by the application and be reserved for the JVM to do house keeping and garbage collection.
+      <a class="link" href="https://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/util/DbCacheSize.html" target="_top">Some guides</a> advise to reserve up to 30% of heap memory for the JVM.
+    </p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6476"></a>9.11.3.1.&#160;Broker</h4></div></div></div><p>
+        The broker itself uses a moderate amount of heap memory (&#8776;15 MB).
+        However, each connection and session comes with a heap overhead of about 17 kB and 15 kB respectively.
+        In addition, each connection reserves 512 kB direct memory for network I/O.
+      </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6481"></a>9.11.3.2.&#160;Virtual Hosts</h4></div></div></div><p>
+        The amount of memory a Virtual Host uses depends on its type.
+        For a JSON Virtual Host Node with a BDB Virtual Host the heap memory usage is approximately 2 MB.
+        However, each BDB Virtual Hosts has a mandatory cache in heap memory which has an impact on performance.
+        See <a class="link" href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Usage-BDB" title="9.11.3.4.&#160;Message Store">below</a> for more information.
+      </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6489"></a>9.11.3.3.&#160;Messages</h4></div></div></div><p>
+        Messages and their headers are kept in direct memory and have an additional overhead of approximately 1 kB heap memory each.
+        This means that most brokers will want to have more direct memory than heap memory.
+        When many small messages accumulate on the broker the 1 kB heap memory overhead can become a <a class="link" href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Low-Memory-Heap" title="9.11.4.1.&#160;Low on Heap Memory">limiting factor</a>.
+      </p><p>
+        When the broker is <a class="link" href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Low-Memory-Direct" title="9.11.4.2.&#160;Low on Direct Memory">running low on direct memory</a>
+        it will evict messages from memory and <a class="link" href="Java-Broker-Runtime-Flow-To-Disk.html" title="9.6.&#160;Flow to Disk">flow them to disk</a>.
+        For persistent messages this only means freeing the direct memory representation because they always have an on-disk representation to guard against unexpected failure (e.g., a power cut).
+        For transient messages this implies additional disk I/O.
+        After being flown to disk messages need to be re-read from disk before delivery.
+      </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="Java-Broker-Runtime-Memory-Usage-BDB"></a>9.11.3.4.&#160;Message Store</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="d0e6508"></a>Berkeley DB (BDB)</h5></div></div></div><p>
+          The broker can use Oracle's BDB JE (BDB) as a message store to persist messages by writing them to a database.
+          BDB uses a mandatory cache for navigating and organising its database structure.
+          Sizing and tuning this cache is a topic of its own and would go beyond the scope of this guide.
+          Suffice to say that by default Qpid uses 5% of heap memory for BDB caches (each Virtual Host uses a separate cache) or 10 MB per BDB store, whichever is greater.
+          See the <a class="link" href="http://www.oracle.com/us/products/database/berkeley-db/je" target="_top">official webpage</a> especially <a class="link" href="http://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/util/DbCacheSize.html" target="_top">this page</a> for more information.
+          For those interested, Qpid uses <a class="link" href="http://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/CacheMode.html#EVICT_LN" target="_top">EVICT_LN</a> as its default JE cacheMode.
+        </p><p>
+          Note that due to licensing concerns Qpid does not ship the BDB JE jar files.
+        </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="d0e6524"></a>Derby</h5></div></div></div><p>
+          TODO
+        </p></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6529"></a>9.11.3.5.&#160;HTTP Management</h4></div></div></div><p>
+        Qpid uses Jetty for the HTTP Management (both REST and Web Management Console).
+        When the management plugin is loaded it will allocate the memory it needs and should not require more memory during operation and can thus be largely ignored.
+      </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Memory-Low-Memory"></a>9.11.4.&#160;Low Memory Conditions</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="Java-Broker-Runtime-Memory-Low-Memory-Heap"></a>9.11.4.1.&#160;Low on Heap Memory</h4></div></div></div><p>
+        When the broker runs low on heap memory performance will degrade because the JVM will trigger full garbage collection (GC) events in a struggle to free memory.
+        These full GC events are also called stop-the-world events as they completely halt the execution of the Java application.
+        Stop-the-world-events may take any where from a couple of milliseconds up to several minutes.
+        Should the heap memory demands rise even further the JVM will eventually throw an OutOfMemoryError which will cause the broker to shut down.
+      </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="Java-Broker-Runtime-Memory-Low-Memory-Direct"></a>9.11.4.2.&#160;Low on Direct Memory</h4></div></div></div><p>
+        When the broker detects that it uses 40% of available direct memory it will start flowing incoming transient messages to disk and reading them back before delivery.
+        This will prevent the broker from running out of direct memory but may degrade performance by requiring disk I/O.
+      </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Memory-Defaults"></a>9.11.5.&#160;Defaults</h3></div></div></div><p>
+      By default Qpid uses these settings:
+      </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          0.5 GB heap memory
+        </li><li class="listitem">
+          1.5 GB direct memory
+        </li><li class="listitem">
+          5% of heap reserved for the JE cache.
+        </li><li class="listitem">
+          Start flow-to-disk at 40% direct memory utilisation.
+        </li></ul></div><p>
+      As an example, this would accommodate a broker with 50 connections, each serving 5 sessions, and each session having 1000 messages of 1 kB on queues in the broker.
+      This means a total of 250 concurrent sessions and a total of 250000 messages without flowing messages to disk.
+    </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Memory-Tuning"></a>9.11.6.&#160;Memory Tuning the Broker</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6565"></a>9.11.6.1.&#160;Java Tuning</h4></div></div></div><p>
+        Most of these options are implementation specific. It is assumed you are using Oracle Java 1.7 and Qpid v6.
+        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+            Heap and direct memory can be configured through the <a class="link" href="Java-Broker-Appendix-Environment-Variables.html#Java-Broker-Appendix-Environment-Variables-Qpid-Java-Mem"><code class="literal">QPID_JAVA_MEM</code> environment variable</a>.
+          </li></ul></div><p>
+      </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6579"></a>9.11.6.2.&#160;Qpid Tuning</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
+          The system property <code class="literal">qpid.broker.bdbTotalCacheSize</code> sets the total amount of heap memory (in bytes) allocated to BDB caches.
+        </li><li class="listitem">
+          The system property <code class="literal">broker.flowToDiskThreshold</code> sets the threshold (in bytes) for flowing transient messages to disk.
+          Should the broker use more than direct memory it will flow incoming messages to disk.
+          Should utilisation fall beneath the threshold it will stop flowing messages to disk.
+        </li></ul></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6593"></a>9.11.6.3.&#160;Formulas</h4></div></div></div><p>
+        We developed a simple formula which estimates the <span class="emphasis"><em>minimum</em></span> memory usage of the broker under certain usage.
+        These are rough estimate so we strongly recommend testing your configuration extensively.
+        Also, if your machine has more memory available by all means use more memory as it can only improve the performance and stability of your broker.
+        However, remember that both heap and direct memory are served from your computer's physical memory so their sum should never exceed the physically available RAM (minus what other processes use).
+      </p><p>
+        </p><div class="informalequation"><span class="mathphrase">
+            memory<sub>heap</sub> = 15 MB + 15 kB * N<sub>sessions</sub> + 1.5 kB * N<sub>messages</sub> + 17 kB * N<sub>connections</sub>
+          </span></div><p>
+      </p><p>
+        </p><div class="informalequation"><span class="mathphrase">
+            memory<sub>direct</sub> = 2 MB + (200 B + averageSize<sub>msg</sub> *2)*  N<sub>messages</sub> + 1MB * N<sub>connections</sub>
+          </span></div><p>
+      </p><p>
+        Where <span class="mathphrase">N</span> denotes the total number of connections/sessions/messages on the broker. Furthermore, for direct memory only the messages that have not been flown to disk are relevant.
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The formulae assume the worst case in terms of memory usage: persistent messages and TLS connections. Transient messages consume less heap memory than peristent and plain connections consume less direct memory than TLS
+          connections.
+        </p></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6645"></a>9.11.6.4.&#160;Things to Consider</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="d0e6648"></a>Performance</h5></div></div></div><p>
+          Choosing a smaller direct memory size will lower the threshold for flowing transient messages to disk when messages accumulate on a queue.
+          This can have impact on performance in the transient case where otherwise no disk I/O would be involved.
+        </p><p>
+          Having too little heap memory will result in poor performance due to frequent garbage collection events. See <a class="xref" href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Low-Memory" title="9.11.4.&#160;Low Memory Conditions">Section&#160;9.11.4, &#8220;Low Memory Conditions&#8221;</a> for more details.
+        </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="d0e6657"></a>OutOfMemoryError</h5></div></div></div><p>
+          Choosing too low heap memory can cause an OutOfMemoryError which will force the broker to shut down.
+          In this sense the available heap memory puts a hard limit on the number of messages you can have in the broker at the same time.
+        </p><p>
+          If the Java runs out of direct memory it also throws a OutOfMemoryError resulting the a broker shutdown.
+          Under normal circumstances this should not happen but needs to be considered when deviating from the default configuration, especially when changing the flowToDiskThreshold.
+        </p><p>
+          If you are sending very large messages you should accommodate for this by making sure you have enough direct memory.
+        </p></div></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Runtime-Connection-Limit.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-High-Availability.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.10.&#160;Connection Limits&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;Chapter&#160;10.&#160;High Availability</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Message-Compression.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Message-Compression.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Message-Compression.html.in
new file mode 100644
index 0000000..00f30c2
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Message-Compression.html.in
@@ -0,0 +1,15 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.9.&#160;Message Compression</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Background-Recovery.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Connection-Limit.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Runtime-Message-Compression"></a>9.9.&#160;Message Compression</h2></div></div></div><p>The Apache Qpid Broker for Java supports<a class="footnote" href="#ftn.d0e6360" id="d0e6360"><sup class="footnote">[13]</sup></a> message compression. This feature works in co-operation with Qpid
+  Clients implementing the same feature.</p><p>Once the feature is enabled (using Broker context variable
+   <span class="emphasis"><em>broker.messageCompressionEnabled</em></span>), the Broker will advertise support for the
+  message compression feature to the client at connection time. This allows clients to opt to turn
+  on message compression, allowing message payload sizes to be reduced.</p><p>If the Broker has connections from clients who have message compression enabled and others who
+  do not, it will internally, on-the-fly, decompress compressed messages when sending to clients
+  without support and conversely, compress uncomressed messages when sending to clients who do.</p><p>The Broker has a threshold below which it will not consider compressing a message, this is
+  controlled by Broker content variable
+   (<code class="literal">connection.messageCompressionThresholdSize</code>) and expresses a size in bytes.</p><p>This feature <span class="emphasis"><em>may</em></span> have a beneficial effect on performance by:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Reducing the number of bytes transmitted over the wire, both between Client and Broker, and
+    in the HA case, Broker to Broker, for replication purposes.</p></li><li class="listitem"><p>Reducing storage space when data is at rest within the Broker, both on disk and in
+    memory.</p></li></ul></div><p>Of course, compression and decompression is computationally expensive. Turning on the feature
+  may have a negative impact on CPU utilization on Broker and/or Client. Also for small messages
+  payloads, message compression may increase the message size. It is recommended to test the feature
+  with representative data.</p><div class="footnotes"><br /><hr style="width:100; text-align:left;margin-left: 0" /><div class="footnote" id="ftn.d0e6360"><p><a class="para" href="#d0e6360"><sup class="para">[13] </sup></a>Message compression is not yet supported for the 1.0
+    protocol.</p></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Runtime-Background-Recovery.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Connection-Limit.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.8.&#160;Background Recovery&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;9.10.&#160;Connection Limits</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/32dce6b5/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Producer-Transaction-Timeout.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Producer-Transaction-Timeout.html.in b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Producer-Transaction-Timeout.html.in
new file mode 100644
index 0000000..fb47911
--- /dev/null
+++ b/input/releases/qpid-broker-j-master/java-broker/book/Java-Broker-Runtime-Producer-Transaction-Timeout.html.in
@@ -0,0 +1,57 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.3.&#160;Producer Transaction Timeout</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Disk-Space-Management.html">Prev</a>&#160;</td><th align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" width="20%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Handling-Undeliverable-Messages.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Runtime-Producer-Transaction-Timeout"></a>9.3.&#160;Producer Transaction Timeout</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Producer-Transaction-Timeout-GeneralInformation"></a>9.3.1.&#160;General Information</h3></div></div></div><p> The transaction timeout mechanism is used to control bro
 ker resources when clients
+   producing messages using transactional sessions hang or otherwise become unresponsive, or simply
+   begin a transaction and keep using it without ever calling <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/Session.html#commit" target="_top">Session#commit()</a>.</p><p>Users can choose to configure an idleWarn or openWarn threshold, after which the identified
+   transaction should be logged as a WARN level alert as well as (more importantly) an idleClose or
+   openClose threshold after which the transaction and the connection it applies to will be
+   closed.</p><p>This feature is particularly useful in environments where the owner of the broker does not
+   have full control over the implementation of clients, such as in a shared services
+   deployment.</p><p>The following section provide more details on this feature and its use.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Producer-Transaction-Timeout-Purpose"></a>9.3.2.&#160;Purpose</h3></div></div></div><p> This feature has been introduced to address the scenario where an open transaction on the
+   broker holds an open transaction on the persistent store. This can have undesirable consequences
+   if the store does not time out or close long-running transactions, such as with BDB. This can can
+   result in a rapid increase in disk usage size, bounded only by available space, due to growth of
+   the transaction log. </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Producer-Transaction-Timeout-Scope"></a>9.3.3.&#160;Scope</h3></div></div></div><p>Note that only <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/MessageProducer.html" target="_top">MessageProducer</a> clients will be affected by a transaction timeout, since store
+   transaction lifespan on a consumer only spans the execution of the call to Session#commit() and
+   there is no scope for a long-lived transaction to arise.</p><p>It is also important to note that the transaction timeout mechanism is purely a JMS
+   transaction timeout, and unrelated to any other timeouts in the Qpid client library and will have
+   no impact on any RDBMS your application may utilise.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Producer-Transaction-Timeout-Effect"></a>9.3.4.&#160;Effect</h3></div></div></div><p>Full details of configuration options are provided in the sections that follow. This section
+   gives a brief overview of what the Transaction Timeout feature can do.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="Java-Broker-Runtime-Producer-Transaction-Timeout-Effect-Broker-Side"></a>9.3.4.1.&#160;Broker Logging and Connection Close</h4></div></div></div><p>When the openWarn or idleWarn specified threshold is exceeded, the broker will log a WARN
+    level alert with details of the connection and channel on which the threshold has been exceeded,
+    along with the age of the transaction.</p><p>When the openClose or idleClose specified threshold value is exceeded, the broker will
+    throw an exception back to the client connection via the <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/ExceptionListener.html" target="_top">ExceptionListener</a>, log the
+    action and then close the connection.</p><p>The example broker log output shown below is where the idleWarn threshold specified is
+    lower than the idleClose threshold and the broker therefore logs the idle transaction 3 times
+    before the close threshold is triggered and the connection closed out.</p><pre class="screen">CHN-1008 : Idle Transaction : 13,116 ms
+CHN-1008 : Idle Transaction : 14,116 ms
+CHN-1008 : Idle Transaction : 15,118 ms
+CHN-1003 : Close
+   </pre><p>The second example broker log output shown below illustrates the same mechanism operating
+    on an open transaction.</p><pre class="screen">
+CHN-1007 : Open Transaction : 12,406 ms
+CHN-1007 : Open Transaction : 13,406 ms
+CHN-1007 : Open Transaction : 14,406 ms
+CHN-1003 : Close
+   </pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="Java-Broker-Runtime-Producer-Transaction-Timeout-Effect-Client-Side"></a>9.3.4.2.&#160;Client Side Effect</h4></div></div></div><p>After a Close threshold has been exceeded, the trigger client will receive this exception
+    on its <a class="link" href="http://docs.oracle.com/javaee/6/api/javax/jms/ExceptionListener.html" target="_top">exception
+    listener</a>, prior to being disconnected:</p><code class="computeroutput">org.apache.qpid.AMQConnectionClosedException: Error: Idle transaction timed out
+    [error code 506: resource error]</code><p>Any later attempt to use the connection will result in this exception being thrown:</p><pre class="screen">Producer: Caught an Exception: javax.jms.IllegalStateException: Object org.apache.qpid.client.AMQSession_0_8@129b0e1 has been closed
+    javax.jms.IllegalStateException: Object org.apache.qpid.client.AMQSession_0_8@129b0e1 has been closed
+    at org.apache.qpid.client.Closeable.checkNotClosed(Closeable.java:70)
+    at org.apache.qpid.client.AMQSession.checkNotClosed(AMQSession.java:555)
+    at org.apache.qpid.client.AMQSession.createBytesMessage(AMQSession.java:573)
+   </pre><p>Thus clients must be able to handle this case successfully, reconnecting where required and
+    registering an exception listener on all connections. This is critical, and must be communicated
+    to client applications by any broker owner switching on transaction timeouts.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Runtime-Producer-Transaction-Timeout-Configuration"></a>9.3.5.&#160;Configuration</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="Java-Broker-Runtime-Producer-Transaction-Timeout-Configuration-Overview"></a>9.3.5.1.&#160;Configuration</h4></div></div></div><p>The transaction timeouts can be specified when a new virtualhost is created or an exiting
+    virtualhost is edited.</p><p>We would recommend that only warnings are configured at first, which should allow broker
+    administrators to obtain an idea of the distribution of transaction lengths on their systems,
+    and configure production settings appropriately for both warning and closure. Ideally
+    establishing thresholds should be achieved in a representative UAT environment, with clients and
+    broker running, prior to any production deployment.</p><p>It is impossible to give suggested values, due to the large variation in usage depending on
+    the applications using a broker. However, clearly transactions should not span the expected
+    lifetime of any client application as this would indicate a hung client.</p><p>When configuring warning and closure timeouts, it should be noted that these only apply to
+    message producers that are connected to the broker, but that a timeout will cause the connection
+    to be closed - this disconnecting all producers and consumers created on that connection.</p><p>This should not be an issue for environments using Mule or Spring, where connection
+    factories can be configured appropriately to manage a single MessageProducer object per JMS
+    Session and Connection. Clients that use the JMS API directly should be aware that sessions
+    managing both consumers and producers, or multiple producers, will be affected by a single
+    producer hanging or leaving a transaction idle or open, and closed, and must take appropriate
+    action to handle that scenario.</p></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="Java-Broker-Runtime-Disk-Space-Management.html">Prev</a>&#160;</td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%">&#160;<a accesskey="n" href="Java-Broker-Runtime-Handling-Undeliverable-Messages.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.2.&#160;Disk Space Management&#160;</td><td align="center" width="20%"><a accesskey="h" href="AMQP-Messaging-Broker-Java-Book.html">Home</a></td><td align="right" valign="top" width="40%">&#160;9.4.&#160;Handing Undeliverable Messages</td></tr></table></div></div>
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org