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 2016/12/28 10:13:25 UTC
[12/49] qpid-site git commit: Update site for 6.0.6 release of Qpid
for Java
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Management-Managing-Virtualhost-Nodes.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Management-Managing-Virtualhost-Nodes.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Management-Managing-Virtualhost-Nodes.html.in
new file mode 100644
index 0000000..5974d79
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Management-Managing-Virtualhost-Nodes.html.in
@@ -0,0 +1,34 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">7.4. Virtualhost Nodes</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Management-Managing-Broker.html">Prev</a> </td><th align="center" width="60%">Chapter 7. Managing Entities</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-Management-Managing-Virtualhosts.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-Management-Managing-Virtualhost-Nodes"></a>7.4. Virtualhost Nodes</h2></div></div></div><p>Virtualhost nodes can only be managed by the HTTP management channel.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Management-Managing-Virtualhost-Nodes-Types"></a>7.4.1. Types</h3></div></div></div><p> The following virtualhost n
odes types are supported. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>BDB - Node backed with Oracle BDB <a class="footnote" href="#ftn.d0e2695" id="d0e2695"><sup class="footnote">[6]</sup></a></p></li><li class="listitem"><p>BDB HA - Node backed with Oracle BDB utilising High
+ Availability</p></li><li class="listitem"><p>DERBY - Node backed with Apache Derby</p></li><li class="listitem"><p>JDBC - Node backed with an external database <a class="footnote" href="#ftn.d0e2709" id="d0e2709"><sup class="footnote">[7]</sup></a></p></li><li class="listitem"><p>JSON - Node backed with a file containing json</p></li><li class="listitem"><p>Memory - In-memory node (changes lost on Broker restart)</p></li></ul></div><p>
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Management-Managing-Virtualhost-Nodes-Attributes"></a>7.4.2. Attributes</h3></div></div></div><p>
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="emphasis"><em>Name the virtualhost node</em></span>.</p></li><li class="listitem"><p><span class="emphasis"><em>Default Virtual Host Node</em></span>. If true, messaging clients which do
+ not specify a virtualhost name will be connected to the virtualhost beneath this node.</p></li><li class="listitem"><p><span class="emphasis"><em>Store Path or JDBC URL.</em></span> Refers the location used to store the
+ configuration of the virtualhost.</p></li><li class="listitem"><p><span class="emphasis"><em>Role</em></span> (HA only). The role that this node is currently playing in
+ the group. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>MASTER - Virtualhost node is a master.</p></li><li class="listitem"><p>REPLICA - Virtualhost node is a replica.</p></li><li class="listitem"><p>WAITING - Virtualhost node is awaiting an election result, or may be awaiting
+ more nodes to join in order that an election may be held.</p></li><li class="listitem"><p>DETACHED - Virtualhost node is disconnected from the group.</p></li></ul></div></li><li class="listitem"><p><span class="emphasis"><em>Priority</em></span> (HA only). The priority of this node when elections
+ occurs. The attribute can be used to make it more likely for a node to be elected than
+ other nodes, or disallow the node from never being elected at all. See <a class="xref" href="Java-Broker-High-Availability-Behaviour.html#Java-Broker-High-Availability-Behaviour-NodePriority" title="10.4.3. Node Priority">Section 10.4.3, “Node Priority”</a></p></li><li class="listitem"><p><span class="emphasis"><em>Minimum Number Of Nodes</em></span> (HA only - groups of three or more).
+ Allows the number of nodes required to hold an election to be reduced in order that
+ service can be restore when less than quorum nodes are present. See <a class="xref" href="Java-Broker-High-Availability-Behaviour.html#Java-Broker-High-Availability-Behaviour-MinimumNumberOfNodes" title="10.4.4. Required Minimum Number Of Nodes">Section 10.4.4, “Required Minimum Number Of Nodes”</a></p></li><li class="listitem"><p><span class="emphasis"><em>Designated Primary</em></span> (HA only - groups of two). Allows a single
+ node in a two node group to operate solo. See <a class="xref" href="Java-Broker-High-Availability-Behaviour.html#Java-Broker-High-Availability-Behaviour-DesignatedPrimary" title="10.4.5. Designated Primary">Section 10.4.5, “Designated Primary”</a></p></li></ul></div><p>
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Management-Managing-Virtualhost-Node-Children"></a>7.4.3. Children</h3></div></div></div><p>
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+ <a class="link" href="Java-Broker-Management-Managing-Virtualhosts.html" title="7.5. VirtualHosts">Virtualhost</a>
+ </p></li><li class="listitem"><p>
+ <a class="link" href="Java-Broker-Management-Managing-RemoteReplicationNodes.html" title="7.6. Remote Replication Nodes">Remote
+ Replication Nodes</a>
+ </p></li></ul></div><p>
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Management-Managing-Virtualhost-Node-Lifecycle"></a>7.4.4. Lifecycle</h3></div></div></div><p>
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="emphasis"><em>Stop</em></span>. Stops the virtualhost node. This closes any existing
+ messaging connections to the virtualhost and prevents new ones. Any inflight
+ transactions are rolled back. Non durable queues and exchanges are lost. Transient
+ messages or persistent messages on non-durable queues are lost.</p><p>When HA is in use, stopping the virtualhost node stops the virtualhost node from
+ participating in the group. If the node was in the master role, the remaining nodes will
+ try to conduct an election and elect a new master. If the node was in the replica role,
+ the node will cease to keep up to date with later transactions. A stopped node does not
+ vote in elections. Other nodes in the group will report the stopped node as
+ unreachable.</p></li><li class="listitem"><p><span class="emphasis"><em>Start</em></span>. Activates the virtualhost node.</p></li><li class="listitem"><p><span class="emphasis"><em>Delete</em></span>. Deletes the virtualhost node and the virtualhost
+ contained within it. All exchanges and queues, any the messages contained within it are
+ removed. In the HA case, deleting the virtualhost node causes it be removed permanently
+ from the group.</p></li></ul></div><p>
+ </p></div><div class="footnotes"><br /><hr style="width:100; text-align:left;margin-left: 0" /><div class="footnote" id="ftn.d0e2695"><p><a class="para" href="#d0e2695"><sup class="para">[6] </sup></a>Oracle BDB JE is optional. See <a class="xref" href="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html" title="E.3. Installing Oracle BDB JE">Section E.3, “Installing Oracle BDB JE”</a>.</p></div><div class="footnote" id="ftn.d0e2709"><p><a class="para" href="#d0e2709"><sup class="para">[7] </sup></a>JDBC 4.0 compatible drivers must be available. See <a class="xref" href="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html" title="E.2. Installing External JDBC Driver">Section E.2, “Installing External JDBC Driver”</a></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-Management-Managing-Broker.html">Prev</a>
 </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Management-Managing-Entities.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-Management-Managing-Virtualhosts.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">7.3. Broker </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%"> 7.5. VirtualHosts</td></tr></table></div></div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Management-Managing-Virtualhosts.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Management-Managing-Virtualhosts.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Management-Managing-Virtualhosts.html.in
new file mode 100644
index 0000000..fa61f15
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Management-Managing-Virtualhosts.html.in
@@ -0,0 +1,28 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">7.5. VirtualHosts</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Management-Managing-Virtualhost-Nodes.html">Prev</a> </td><th align="center" width="60%">Chapter 7. Managing Entities</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-Management-Managing-RemoteReplicationNodes.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-Management-Managing-Virtualhosts"></a>7.5. VirtualHosts</h2></div></div></div><p>A virtualhost is a independent namespace in which messaging is performed. Virtualhosts are
+ responsible for the storage of message data.</p><p>Virtualhosts can only be managed by the HTTP management channel.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Management-Managing-Virtualhosts-Types"></a>7.5.1. Types</h3></div></div></div><p>The following virtualhost types are supported. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>BDB - Virtualhost backed with Oracle BDB <a class="footnote" href="#ftn.d0e2838" id="d0e2838"><sup class="footnote">[8]</sup></a></p></li><li class="listitem"><p>BDB HA - Virtualhost backed with Oracle BDB utilising High Availability</p></li><li class="listitem"><p>DERBY - Virtualhost backed with Apache Derby</p></li><li class="listitem"><p>JDBC - Virtualhost backed with an external database <a class="footnote" href="#ftn.d0e2852" id="d0e2852"><sup class="footnote">[9]</sup></a></p></li><li class="listitem"><p>Memory - In-memory nod
e (changes lost on Broker restart)</p></li><li class="listitem"><p>Provided - Virtualhost that co-locates message data within the parent virtualhost
+ node <a class="footnote" href="#ftn.d0e2862" id="d0e2862"><sup class="footnote">[10]</sup></a>.</p></li></ul></div><p>
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Management-Managing-Virtualhost-Context"></a>7.5.2. Context</h3></div></div></div><p>
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="emphasis"><em>use_async_message_store_recovery</em></span> Controls the <a class="link" href="Java-Broker-Runtime-Background-Recovery.html" title="9.7. Background Recovery">background recovery</a>
+ feature.</p></li></ul></div><p>
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Management-Managing-Virtualhost-Attributes"></a>7.5.3. Attributes</h3></div></div></div><p>
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="emphasis"><em>Name the virtualhost</em></span>. This is the name the messaging clients
+ refer to when forming a connection to the Broker.</p></li><li class="listitem"><p><span class="emphasis"><em>Store Path/JDBC URL</em></span>. Refers the file system location or
+ database URL used to store the message data.</p></li><li class="listitem"><p><span class="emphasis"><em>Store overflow/underflow</em></span>. Some virtualhosts have the ability to
+ limit the of the cumulative size of all the messages contained within the store. This
+ feature is described in detail <a class="xref" href="Java-Broker-Runtime-Disk-Space-Management.html" title="9.2. Disk Space Management">Section 9.2, “Disk Space Management”</a>.</p></li><li class="listitem"><p><span class="emphasis"><em>Connection thread pool size</em></span>. Number of worker threads
+ used to perform messaging with connected clients. </p><p>Defaults to 64 or double the maximum number of available processors, whichever
+ is the larger.</p></li><li class="listitem"><p><span class="emphasis"><em>Number of selectors</em></span>. Number of worker threads
+ used from the thread pool to dispatch I/O activity to the worker threads.</p><p>Defaults to one eighth of the thread pool size. Minimum 1.</p></li><li class="listitem"><p><span class="emphasis"><em>Store transaction timeouts</em></span>. Warns of long running producer
+ transactions. See <a class="xref" href="Java-Broker-Runtime-Producer-Transaction-Timeout.html" title="9.3. Producer Transaction Timeout">Section 9.3, “Producer Transaction Timeout”</a></p></li><li class="listitem"><p><span class="emphasis"><em>Synchronization policy</em></span>. HA only. See <a class="xref" href="Java-Broker-High-Availability-Behaviour.html#Java-Broker-High-Availability-Behaviour-SynchronizationPolicy" title="10.4.2. Synchronization Policy">Section 10.4.2, “Synchronization Policy”</a></p></li></ul></div><p>
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Management-Managing-Virtualhost-Children"></a>7.5.4. Children</h3></div></div></div><p>
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+ <a class="link" href="Java-Broker-Management-Managing-Exchanges.html" title="7.7. Exchanges">Exchange</a>
+ </p></li><li class="listitem"><p>
+ <a class="link" href="Java-Broker-Management-Managing-Queues.html" title="7.8. Queues">Queue</a>
+ </p></li></ul></div><p>
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Java-Broker-Management-Managing-Virtualhost-Lifecycle"></a>7.5.5. Lifecycle</h3></div></div></div><p>
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span class="emphasis"><em>Stop</em></span>. Stops the virtualhost. This closes any existing messaging
+ connections to the virtualhost and prevents new ones. Any inflight transactions are
+ rolled back. Non durable queues and non durable exchanges are lost. Transient messages
+ or persistent messages on non-durable queues are lost.</p></li><li class="listitem"><p><span class="emphasis"><em>Start</em></span>. Activates the virtualhost.</p></li></ul></div><p>
+ </p></div><div class="footnotes"><br /><hr style="width:100; text-align:left;margin-left: 0" /><div class="footnote" id="ftn.d0e2838"><p><a class="para" href="#d0e2838"><sup class="para">[8] </sup></a>Oracle BDB JE is optional. See <a class="xref" href="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html" title="E.3. Installing Oracle BDB JE">Section E.3, “Installing Oracle BDB JE”</a>.</p></div><div class="footnote" id="ftn.d0e2852"><p><a class="para" href="#d0e2852"><sup class="para">[9] </sup></a>JDBC 4.0 compatible drivers must be available. See <a class="xref" href="Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html" title="E.2. Installing External JDBC Driver">Section E.2, “Installing External JDBC Driver”</a></p></div><div class="footnote" id="ftn.d0e2862"><p><a class="para" href="#d0e2862"><sup class="para">[10] </sup></a>Not available if Virtualhost Node type is JSON.</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-Management-Managing-Virtualhost-Nodes.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Management-Managing-Entities.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-Management-Managing-RemoteReplicationNodes.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">7.4. Virtualhost Nodes </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%"> 7.6. Remote Replication Nodes</td></tr></table></div></div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html.in
new file mode 100644
index 0000000..ea629be
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html.in
@@ -0,0 +1,5 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">E.2. Installing External JDBC Driver</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Miscellaneous.html">Prev</a> </td><th align="center" width="60%">Appendix E. Miscellaneous</th><td align="right" width="20%"> <a accesskey="n" href="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.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-External-JDBC-Driver"></a>E.2. Installing External JDBC Driver</h2></div></div></div><p>In order to use a JDBC Virtualhost Node or a JDBC Virtualhost, you must make the
+ Database's JDBC 4.0 compatible drivers available on the Broker's classpath. To do this copy
+ the driver's JAR file into the <code class="literal">${QPID_HOME}/lib</code> folder.</p><pre class="programlisting">Unix:
+cp <code class="literal">driver</code>.jar qpid-broker-6.0.6/lib</pre><pre class="programlisting">Windows:
+copy <code class="literal">driver</code>.jar qpid-broker-6.0.6\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.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Miscellaneous.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Appendix E. Miscellaneous </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%"> E.3. Installing Oracle BDB JE</td></tr></table></div></div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.in
new file mode 100644
index 0000000..dd3af85
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/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. 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> </td><th align="center" width="60%">Appendix E. Miscellaneous</th><td align="right" width="20%"> </td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE"></a>E.3. 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-6.0.6/lib</pre><pre class="programlisting">Windows:
+copy je-5.0.104.jar qpid-broker-6.0.6\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> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Miscellaneous.html">Up</a></td><td align="right" width="40%"> </td></tr><tr><td align="left" valign="top" width="40%">E.2. Installing External JDBC Driver </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%"> </td></tr></table></div></div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Miscellaneous.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Miscellaneous.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Miscellaneous.html.in
new file mode 100644
index 0000000..7aaf930
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/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 E. Miscellaneous</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Appendix-Queue-Alerts.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <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 E. 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. 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. 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.7.0_79\
+ </pre><p> Then confirm that a Java installation (1.7 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.7.0_79"
+Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
+Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, 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. 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.7.0_80
+ </pre><p> Then confirm that a Java installation (1.7 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.7.0_80"
+Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
+Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, 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> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <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 D. Queue Alerts </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%"> E.2. 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/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Background-Recovery.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Background-Recovery.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Background-Recovery.html.in
new file mode 100644
index 0000000..911ceab
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/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.7. Background Recovery</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Flow-To-Disk.html">Prev</a> </td><th align="center" width="60%">Chapter 9. Runtime</th><td align="right" width="20%"> <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.7. 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. 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-Flow-To-Disk.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-Runtime-Message-Compression.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.6. Flow to Disk </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%"> 9.8. Message Compression</td></tr></table></div></div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Close-Connection-When-No-Route.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Close-Connection-When-No-Route.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Close-Connection-When-No-Route.html.in
new file mode 100644
index 0000000..3cbf0e6
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/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. 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> </td><th align="center" width="60%">Chapter 9. Runtime</th><td align="right" width="20%"> <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. 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. 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. 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="d0e5671"></a><p class="title"><strong>Example 9.1. 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'&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> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%"> <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. Handing Undeliverable Messages </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%"> 9.6. 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/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Connection-Limit.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Connection-Limit.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Connection-Limit.html.in
new file mode 100644
index 0000000..177c0d7
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/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.9. Connection Limits</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Message-Compression.html">Prev</a> </td><th align="center" width="60%">Chapter 9. Runtime</th><td align="right" width="20%"> <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.9. 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> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-Runtime-Memory.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.8. Message Compression </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%"> 9.10. Memory</td></tr></table></div></div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in
new file mode 100644
index 0000000..ed5f063
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in
@@ -0,0 +1,96 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.2. Disk Space Management</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime.html">Prev</a> </td><th align="center" width="60%">Chapter 9. Runtime</th><td align="right" width="20%"> <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. Disk Space Management</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="Qpid-Producer-Flow-Control"></a>9.2.1. Producer Flow Control</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control-Ge
neralInformation"></a>9.2.1.1. General Information</h4></div></div></div><p>
+ The Apache Qpid Broker for Java supports a flow control mechanism to which can be used to prevent either a single queue
+ or a virtualhost exceeding configured limits. These two mechanisms are described
+ next.
+ </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control-ServerConfiguration"></a>9.2.1.2. Server Configuration</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="d0e5366"></a>Configuring a Queue to use flow control</h5></div></div></div><p>
+ Flow control is enabled on a producer when it sends a message to a Queue
+ which is "overfull". The producer flow control will be rescinded when all
+ Queues on which a producer is blocking become "underfull". A Queue is defined
+ as overfull when the size (in bytes) of the messages on the queue exceeds the
+ <span class="emphasis"><em>capacity</em></span> of the Queue. A Queue becomes "underfull" when its
+ size becomes less than the <span class="emphasis"><em>resume capacity</em></span>.
+ </p><p>
+ The capacity and resume capacity can be specified when the queue is created. This
+ can be done using the Flow Control Settings within the Queue creation dialogue.
+ </p><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="d0e5379"></a>Broker Log Messages</h6></div></div></div><p>
+ There are four Broker log messages that may occur if flow control through queue capacity limits is enabled.
+ Firstly, when a capacity limited queue becomes overfull, a log message similar to the following is produced
+ </p><pre class="programlisting">
+MESSAGE [vh(/test)/qu(MyQueue)] [vh(/test)/qu(MyQueue)] QUE-1003 : Overfull : Size : 1,200 bytes, Capacity : 1,000
+ </pre><p>Then for each channel which becomes blocked upon the overful queue a log message similar to the following is produced:</p><pre class="programlisting">
+MESSAGE [con:2(guest@anonymous(713889609)/test)/ch:1] [con:2(guest@anonymous(713889609)/test)/ch:1] CHN-1005 : Flow Control Enforced (Queue MyQueue)
+ </pre><p>When enough messages have been consumed from the queue that it becomes underfull, then the following log is generated: </p><pre class="programlisting">
+MESSAGE [vh(/test)/qu(MyQueue)] [vh(/test)/qu(MyQueue)] QUE-1004 : Underfull : Size : 600 bytes, Resume Capacity : 800
+ </pre><p>And for every channel which becomes unblocked you will see a message similar to: </p><pre class="programlisting">
+MESSAGE [con:2(guest@anonymous(713889609)/test)/ch:1] [con:2(guest@anonymous(713889609)/test)/ch:1] CHN-1006 : Flow Control Removed
+ </pre><p>Obviously the details of connection, virtual host, queue, size, capacity, etc would depend on the configuration in use.</p></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="d0e5402"></a>Disk quota-based flow control</h5></div></div></div><p>
+ Flow control can also be 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="section"><div class="titlepage"><div><div><h6 class="title"><a id="d0e5424"></a>Broker Log Messages for quota flow control</h6></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="section"><div class="titlepage"><div><div><h4 class="title"><a id="Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control-ClientImpact"></a>9.2.1.3. Client impact and configuration</h4></div></div></div><p>
+ If a producer sends to a queue which is overfull, the broker will respond by
+ instructing the client not to send any more messages. The impact of this is
+ that any future attempts to send will block until the broker rescinds the flow control order.
+ </p><p>
+ While blocking the client will periodically log the fact that it is blocked waiting on flow control.
+ </p><pre class="programlisting">
+WARN Message send delayed by 5s due to broker enforced flow control
+WARN Message send delayed by 10s due to broker enforced flow control
+ </pre><p>
+ After a set period the send will timeout and throw a JMSException to the calling code.
+ </p><p>
+ If such a JMSException is thrown, the message will not be sent to the broker,
+ however the underlying Session may still be active - in particular if the
+ Session is transactional then the current transaction will not be automatically
+ rolled back. Users may choose to either attempt to resend the message, or to
+ roll back any transactional work and close the Session.
+ </p><p>
+ Both the timeout delay and the periodicity of the warning messages can be set
+ using Java system properties.
+ </p><p>
+ The amount of time (in milliseconds) to wait before timing out
+ is controlled by the property qpid.flow_control_wait_failure.
+ </p><p>
+ The frequency at which the log message informing that the producer is flow
+ controlled is sent is controlled by the system property qpid.flow_control_wait_notify_period.
+ </p><p>
+ Adding the following to the command line to start the client would result in a timeout of one minute,
+ with warning messages every ten seconds:
+ </p><pre class="programlisting">
+-Dqpid.flow_control_wait_failure=60000
+-Dqpid.flow_control_wait_notify_period=10000
+ </pre></div></div></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> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-Runtime-Producer-Transaction-Timeout.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">Chapter 9. Runtime </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%"> 9.3. 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/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Flow-To-Disk.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Flow-To-Disk.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Flow-To-Disk.html.in
new file mode 100644
index 0000000..bebed74
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/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. 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> </td><th align="center" width="60%">Chapter 9. Runtime</th><td align="right" width="20%"> <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-Flow-To-Disk"></a>9.6. 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.10. 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> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-Runtime-Background-Recovery.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.5. Closing client connections on unroutable mandatory messages </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%"> 9.7. Background Recovery</td></tr></table></div></div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html.in
new file mode 100644
index 0000000..b5f0709
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/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. Handing Undeliverable Messages</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Producer-Transaction-Timeout.html">Prev</a> </td><th align="center" width="60%">Chapter 9. Runtime</th><td align="right" width="20%"> <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. 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. 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. 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. 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> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%"> <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. Producer Transaction Timeout </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%"> 9.5. 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/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Memory.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Memory.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Memory.html.in
new file mode 100644
index 0000000..8a64df9
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Memory.html.in
@@ -0,0 +1,123 @@
+<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">9.10. Memory</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Connection-Limit.html">Prev</a> </td><th align="center" width="60%">Chapter 9. Runtime</th><td align="right" width="20%"> <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.10. 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.10.1. 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.10.2. Types of Memory">Section 9.10.2, “Types of Memory”</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.10.3. Memory Usage in the Broker">Section 9.10.3, “Memory Usage in the Broker”</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.10.4. Low Memory Conditions">Section 9.10.4, “Low Memory Conditions”</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.10.5. Defaults">Section 9.10.5, “Defaults”</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.10.6. Memory Tuning the Broker">Section 9.10.6, “Memory Tuning the Broker”</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.10.2. 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="d0e5829"></a>9.10.2.1. 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="d0e5834"></a>9.10.2.2. Direct</h4></div></div></div><p>
+ The world ouside 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.10.3. 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="d0e5853"></a>9.10.3.1. Broker</h4></div></div></div><p>
+ The broker itself uses a moderate amount of heap memory (≈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="d0e5858"></a>9.10.3.2. 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.10.3.4. Message Store">below</a> for more information.
+ </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e5866"></a>9.10.3.3. 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.10.4.1. 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.10.4.2. 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. 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.10.3.4. Message Store</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="d0e5885"></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="d0e5901"></a>Derby</h5></div></div></div><p>
+ TODO
+ </p></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e5906"></a>9.10.3.5. 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.10.4. 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.10.4.1. 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.10.4.2. 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.10.5. Defaults</h3></div></div></div><p>
+ By default Qpid uses these settiongs:
+ </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 accomodate 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.10.6. Memory Tuning the Broker</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e5942"></a>9.10.6.1. 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="d0e5956"></a>9.10.6.2. 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="d0e5970"></a>9.10.6.3. 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>
+ <span class="mathphrase">
+ memory<sub>heap</sub> = 15 MB + 15 kB * N<sub>sessions</sub> + 1 kB * N<sub>messages</sub> + 17 kB * N<sub>connections</sub>
+ </span>
+ <span class="mathphrase">
+ memory<sub>direct</sub> = 2 MB + (200 B + averageSize<sub>msg</sub> *2)* N<sub>messages</sub> + 512 kB * N<sub>connections</sub>
+ </span>
+ 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><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="d0e6013"></a>9.10.6.4. Things to Consider</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="d0e6016"></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 to 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.10.4. Low Memory Conditions">Section 9.10.4, “Low Memory Conditions”</a> for more details.
+ </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="d0e6025"></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> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-High-Availability.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.9. Connection Limits </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%"> Chapter 10. High Availability</td></tr></table></div></div>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/4ae9ccad/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Message-Compression.html.in
----------------------------------------------------------------------
diff --git a/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Message-Compression.html.in b/input/releases/qpid-java-6.0.6/java-broker/book/Java-Broker-Runtime-Message-Compression.html.in
new file mode 100644
index 0000000..c6b464f
--- /dev/null
+++ b/input/releases/qpid-java-6.0.6/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.8. Message Compression</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="Java-Broker-Runtime-Background-Recovery.html">Prev</a> </td><th align="center" width="60%">Chapter 9. Runtime</th><td align="right" width="20%"> <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.8. Message Compression</h2></div></div></div><p>The Apache Qpid Broker for Java supports<a class="footnote" href="#ftn.d0e5737" id="d0e5737"><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.d0e5737"><p><a class="para" href="#d0e5737"><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> </td><td align="center" width="20%"><a accesskey="u" href="Java-Broker-Runtime.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="Java-Broker-Runtime-Connection-Limit.html">Next</a></td></tr><tr><td align="left" valign="top" width="40%">9.7. Background Recovery </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%"> 9.9. Connection Limits</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