http://git-wip-us.apache.org/repos/asf/qpid-site/blob/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Management-Managing-Virtualhost-Nodes.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Management-Managing-Virtualhost-Nodes.html.in
 
b/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Management-Managing-Virtualhost-Nodes.html.in
new file mode 100644
index 0000000..7fec4d5
--- /dev/null
+++ 
b/input/releases/qpid-java-6.0.3/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.&#160;Virtualhost 
Nodes</th></tr><tr><td align="left" width="20%"><a accesskey="p" 
href="Java-Broker-Management-Managing-Broker.html">Prev</a>&#160;</td><th 
align="center" width="60%">Chapter&#160;7.&#160;Managing Entities</th><td 
align="right" width="20%">&#160;<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.&#160;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.&#160;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.d0e2679" id="d0e2679"><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.d0e2693" id="d0e2693"><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.&#160;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.&#160;Node Priority">Section&#160;10.4.3, &#8220;Node 
Priority&#8221;</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.&#160;Required Minimum Number Of Nodes">Section&#160;10.4.4, 
&#8220;Required Minimum Number Of Nodes&#8221;</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.&#160;Designated Primary">Section&#160;10.4.5, &#8220;Designated 
Primary&#8221;</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.&#160;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.&#160;VirtualHosts">Virtualhost</a>
+          </p></li><li class="listitem"><p>
+            <a class="link" 
href="Java-Broker-Management-Managing-RemoteReplicationNodes.html" 
title="7.6.&#160;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.&#160;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.d0e2679"><p><a 
class="para" href="#d0e2679"><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.&#160;Installing Oracle BDB JE">Section&#160;E.3, &#8220;Installing 
Oracle BDB JE&#8221;</a>.</p></div><div class="footnote" id="ftn.d0e2693"><p><a 
class="para" href="#d0e2693"><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.&#160;Installing External JDBC Driver">Section&#160;E.2, 
&#8220;Installing External JDBC Driver&#8221;</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>
 &#160;</td><td align="center" width="20%"><a accesskey="u" 
href="Java-Broker-Management-Managing-Entities.html">Up</a></td><td 
align="right" width="40%">&#160;<a accesskey="n" 
href="Java-Broker-Management-Managing-Virtualhosts.html">Next</a></td></tr><tr><td
 align="left" valign="top" width="40%">7.3.&#160;Broker&#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;7.5.&#160;VirtualHosts</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Management-Managing-Virtualhosts.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Management-Managing-Virtualhosts.html.in
 
b/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Management-Managing-Virtualhosts.html.in
new file mode 100644
index 0000000..5641688
--- /dev/null
+++ 
b/input/releases/qpid-java-6.0.3/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.&#160;VirtualHosts</th></tr><tr><td align="left" width="20%"><a 
accesskey="p" 
href="Java-Broker-Management-Managing-Virtualhost-Nodes.html">Prev</a>&#160;</td><th
 align="center" width="60%">Chapter&#160;7.&#160;Managing Entities</th><td 
align="right" width="20%">&#160;<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.&#160;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.&#160;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.d0e2822" id="d0e2822"><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.d0e2836" id="d0e2836"><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.d0e2846" id="d0e2846"><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.&#160;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.&#160;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.&#160;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.&#160;Disk 
Space Management">Section&#160;9.2, &#8220;Disk Space 
Management&#8221;</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.&#160;Producer Transaction Timeout">Section&#160;9.3, 
&#8220;Producer Transaction Timeout&#8221;</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.&#160;Synchronization Policy">Section&#160;10.4.2, 
&#8220;Synchronization Policy&#8221;</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.&#160;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.&#160;Exchanges">Exchange</a>
+          </p></li><li class="listitem"><p>
+            <a class="link" href="Java-Broker-Management-Managing-Queues.html" 
title="7.8.&#160;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.&#160;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.d0e2822"><p><a 
class="para" href="#d0e2822"><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.&#160;Installing Oracle BDB JE">Section&#160;E.3, &#8220;Installing 
Oracle BDB JE&#8221;</a>.</p></div><div class="footnote" id="ftn.d0e2836"><p><a 
class="para" href="#d0e2836"><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.&#160;Installing External JDBC Driver">Section&#160;E.2, 
&#8220;Installing External JDBC Driver&#8221;</a></p></div><div 
class="footnote" id="ftn.d0e2846"><p><a class="para" href="#d0e2846"><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>&#160;</td><td
 > align="center" width="20%"><a accesskey="u" 
 >href="Java-Broker-Management-Managing-Entities.html">Up</a></td><td 
 >align="right" width="40%">&#160;<a accesskey="n" 
 >href="Java-Broker-Management-Managing-RemoteReplicationNodes.html">Next</a></td></tr><tr><td
 > align="left" valign="top" width="40%">7.4.&#160;Virtualhost 
 >Nodes&#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;7.6.&#160;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/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html.in
 
b/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Miscellaneous-Installing-External-JDBC-Driver.html.in
new file mode 100644
index 0000000..436e4c6
--- /dev/null
+++ 
b/input/releases/qpid-java-6.0.3/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.&#160;Installing External 
JDBC Driver</th></tr><tr><td align="left" width="20%"><a accesskey="p" 
href="Java-Broker-Miscellaneous.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-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.&#160;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.3/lib</pre><pre 
class="programlisting">Windows:
+copy <code class="literal">driver</code>.jar 
qpid-broker-6.0.3\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>&#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-Miscellaneous-Installing-Oracle-BDB-JE.html">Next</a></td></tr><tr><td
 align="left" valign="top" 
width="40%">Appendix&#160;E.&#160;Miscellaneous&#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.3.&#160;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/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.in
 
b/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Miscellaneous-Installing-Oracle-BDB-JE.html.in
new file mode 100644
index 0000000..98d68aa
--- /dev/null
+++ 
b/input/releases/qpid-java-6.0.3/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;</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-6.0.3/lib</pre><pre 
class="programlisting">Windows:
+copy je-5.0.104.jar qpid-broker-6.0.3\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;</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;</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Miscellaneous.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Miscellaneous.html.in
 
b/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Miscellaneous.html.in
new file mode 100644
index 0000000..7aaf930
--- /dev/null
+++ 
b/input/releases/qpid-java-6.0.3/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.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.&#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.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>&#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/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Background-Recovery.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Background-Recovery.html.in
 
b/input/releases/qpid-java-6.0.3/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.3/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.&#160;Background 
Recovery</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-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.&#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-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-Message-Compression.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;Message 
Compression</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Close-Connection-When-No-Route.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Close-Connection-When-No-Route.html.in
 
b/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Close-Connection-When-No-Route.html.in
new file mode 100644
index 0000000..4db9db2
--- /dev/null
+++ 
b/input/releases/qpid-java-6.0.3/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 Qpid JMS client 
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 Java Broker 
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>
+            Qpid JMS client 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="d0e5648"></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/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Connection-Limit.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Connection-Limit.html.in
 
b/input/releases/qpid-java-6.0.3/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.3/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.&#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.9.&#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.8.&#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.10.&#160;Memory</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in
 
b/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Disk-Space-Management.html.in
new file mode 100644
index 0000000..183e4bf
--- /dev/null
+++ 
b/input/releases/qpid-java-6.0.3/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.&#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="Qpid-Producer-Flow-Control"></a>9.2.1.&#160;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.&#160;General 
Information</h4></div></div></div><p>
+            The Java Broker 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.&#160;Server
 Configuration</h4></div></div></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a id="d0e5343"></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="d0e5356"></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="d0e5379"></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="d0e5401"></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.&#160;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>&#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/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Flow-To-Disk.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Flow-To-Disk.html.in
 
b/input/releases/qpid-java-6.0.3/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.3/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-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.&#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.10.&#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-Background-Recovery.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;Background 
Recovery</td></tr></table></div></div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html.in
 
b/input/releases/qpid-java-6.0.3/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.3/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/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Memory.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Memory.html.in
 
b/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Memory.html.in
new file mode 100644
index 0000000..41cc0db
--- /dev/null
+++ 
b/input/releases/qpid-java-6.0.3/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.&#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.10.&#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.10.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.10.2.&#160;Types of Memory">Section&#160;9.10.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.10.3.&#160;Memory Usage in the Broker">Section&#160;9.10.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.10.4.&#160;Low Memory Conditions">Section&#160;9.10.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.10.5.&#160;Defaults">Section&#160;9.10.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.10.6.&#160;Memory Tuning the Broker">Section&#160;9.10.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.10.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="d0e5806"></a>9.10.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="d0e5811"></a>9.10.2.2.&#160;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.&#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="d0e5830"></a>9.10.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="d0e5835"></a>9.10.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.10.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="d0e5843"></a>9.10.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.10.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.10.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.10.3.4.&#160;Message 
Store</h4></div></div></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a id="d0e5862"></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="d0e5878"></a>Derby</h5></div></div></div><p>
+          TODO
+        </p></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="d0e5883"></a>9.10.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.10.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.10.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.10.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.10.5.&#160;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.&#160;Memory 
Tuning the Broker</h3></div></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="d0e5919"></a>9.10.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="d0e5933"></a>9.10.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="d0e5947"></a>9.10.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>
+        <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="d0e5990"></a>9.10.6.4.&#160;Things to 
Consider</h4></div></div></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a 
id="d0e5993"></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.&#160;Low Memory Conditions">Section&#160;9.10.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="d0e6002"></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.9.&#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/2069e43d/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Message-Compression.html.in
----------------------------------------------------------------------
diff --git 
a/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Message-Compression.html.in
 
b/input/releases/qpid-java-6.0.3/java-broker/book/Java-Broker-Runtime-Message-Compression.html.in
new file mode 100644
index 0000000..3eaae24
--- /dev/null
+++ 
b/input/releases/qpid-java-6.0.3/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.&#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.8.&#160;Message 
Compression</h2></div></div></div><p>The Java Broker supports<a 
class="footnote" href="#ftn.d0e5714" id="d0e5714"><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.d0e5714"><p><a class="para" href="#d0e5714"><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.7.&#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.9.&#160;Connection 
Limits</td></tr></table></div></div>
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to