http://git-wip-us.apache.org/repos/asf/qpid-site/blob/0e1f0cc4/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Connection-Limit.html
----------------------------------------------------------------------
diff --git 
a/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Connection-Limit.html
 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Connection-Limit.html
new file mode 100644
index 0000000..57f4a20
--- /dev/null
+++ 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Connection-Limit.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
+  <head>
+    <title>9.10.&#160;Connection Limits - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git 
https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" 
alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache 
Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid 
Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ 
broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch 
router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a 
href="https://cwiki.apache.org/confluence/display/qpid/Index";>Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search"; method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" 
tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a 
href="/index.html">Home</a></li><li><a 
href="/releases/index.html">Releases</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/index.html">Qpid Broker-J 
7.0.0</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/book/index.html">Apache Qpid 
Broker-J</a></li><li>9.10.&#160;Connection Limits</li></ul>
+
+        <div id="-middle-content">
+          <div class="docbook"><div class="navheader"><table 
summary="Navigation header" width="100%"><tr><th align="center" 
colspan="3">9.10.&#160;Connection Limits</th></tr><tr><td align="left" 
width="20%"><a accesskey="p" 
href="Java-Broker-Runtime-Message-Compression.html">Prev</a>&#160;</td><th 
align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" 
width="20%">&#160;<a accesskey="n" 
href="Java-Broker-Runtime-Memory.html">Next</a></td></tr></table><hr 
/></div><div class="section"><div class="titlepage"><div><div><h2 class="title" 
style="clear: both"><a 
id="Java-Broker-Runtime-Connection-Limit"></a>9.10.&#160;Connection 
Limits</h2></div></div></div><p>
+     Each connection to the Broker consumes resources while it is connected. 
In order to protect
+     the Broker against malfunctioning (or malicious) client processes, it is 
possible to limit the
+     number of connections that can be active on any given port.
+   </p><p>
+       Connection limits on AMQP ports are controlled by an attribute 
"maxOpenConnections" on
+       the port. By default this takes the value of the context variable
+       <code class="literal">qpid.port.max_open_connections</code> which in 
itself is defaulted to the
+       value <code class="literal">-1</code> meaning there is no limit.
+   </p><p>
+       If the interpolated value of <code 
class="literal">maxOpenConnections</code> on an AMQP port is a
+       positive integer, then when that many active connections have been 
established no new
+       connections will be allowed (until an existing connection has been 
closed). Any such
+       rejection of a connection will be accompanied by the operational log 
message
+       <a class="link" 
href="Java-Broker-Appendix-Operation-Logging.html#Java-Broker-Appendix-Operation-Logging-Message-PRT-1005">PRT-1005</a>.
+   </p><p>
+       The context variable <code 
class="literal">qpid.port.open_connections_warn_percent</code> can be
+       used to control when a warning log message is generated as the number 
of open connections
+       approaches the limit for the port. The default value of this variable is
+       <code class="literal">80</code> meaning that if more the number of open 
connections to the port
+       has exceeded 80% of the given limit then the operatinal log message
+       <a class="link" 
href="Java-Broker-Appendix-Operation-Logging.html#Java-Broker-Appendix-Operation-Logging-Message-PRT-1004">PRT-1004</a>
+       will be generated.
+   </p></div><div class="navfooter"><hr /><table summary="Navigation footer" 
width="100%"><tr><td align="left" width="40%"><a accesskey="p" 
href="Java-Broker-Runtime-Message-Compression.html">Prev</a>&#160;</td><td 
align="center" width="20%"><a accesskey="u" 
href="Java-Broker-Runtime.html">Up</a></td><td align="right" 
width="40%">&#160;<a accesskey="n" 
href="Java-Broker-Runtime-Memory.html">Next</a></td></tr><tr><td align="left" 
valign="top" width="40%">9.9.&#160;Message Compression&#160;</td><td 
align="center" width="20%"><a accesskey="h" 
href="Apache-Qpid-Broker-J-Book.html">Home</a></td><td align="right" 
valign="top" width="40%">&#160;9.11.&#160;Memory</td></tr></table></div></div>
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/";>Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/";><img id="-apache-feather" 
width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0";>Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/0e1f0cc4/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Consumers.html
----------------------------------------------------------------------
diff --git 
a/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Consumers.html 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Consumers.html
new file mode 100644
index 0000000..fc11c2c
--- /dev/null
+++ 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Consumers.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
+  <head>
+    <title>9.7.&#160;Consumers - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git 
https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" 
alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache 
Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid 
Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ 
broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch 
router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a 
href="https://cwiki.apache.org/confluence/display/qpid/Index";>Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search"; method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" 
tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a 
href="/index.html">Home</a></li><li><a 
href="/releases/index.html">Releases</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/index.html">Qpid Broker-J 
7.0.0</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/book/index.html">Apache Qpid 
Broker-J</a></li><li>9.7.&#160;Consumers</li></ul>
+
+        <div id="-middle-content">
+          <div class="docbook"><div class="navheader"><table 
summary="Navigation header" width="100%"><tr><th align="center" 
colspan="3">9.7.&#160;Consumers</th></tr><tr><td align="left" width="20%"><a 
accesskey="p" 
href="Java-Broker-Runtime-Flow-To-Disk.html">Prev</a>&#160;</td><th 
align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" 
width="20%">&#160;<a accesskey="n" 
href="Java-Broker-Runtime-Background-Recovery.html">Next</a></td></tr></table><hr
 /></div><div class="section"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
id="Java-Broker-Runtime-Consumers"></a>9.7.&#160;Consumers</h2></div></div></div><p>A
 Consumer is created when an AMQP connection wishes to receive messages from a 
message source (such as a
+    Queue).  The standard behaviours of consumers are defined by the 
respective AMQP specification, however in addition
+    to the standard behaviours a number of Qpid specific enhancements are 
available</p><div class="section"><div class="titlepage"><div><div><h3 
class="title"><a 
id="Java-Broker-Runtime-Consumers-Prioirty"></a>9.7.1.&#160;Priority</h3></div></div></div><p>By
 default, when there are multiple competing consumers attached to the same 
message source, the Broker
+      attempts to distribute messages from the queue in a "fair" manner. Some 
use cases require allocation of messages
+      to consumers to be based on the "priority" of the consumer. Where there 
are multiple consumers having differing
+      priorities, the Broker will always attempt to deliver a message to a 
higher priority consumer before attempting
+      delivery to a lower priority consumer. That is, a lower priority 
consumer will only receive a message if no
+      higher priority consumers currently have credit available to consume the 
message, or those consumers have declined
+      to accept the message (for instance because it does not meet the 
criteria of any selectors associated with the
+      consumer).</p><p>Where a consumer is created with no explicit priority 
provided, the consumer is given the highest possible
+      priority.</p><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="d0e5973"></a>9.7.1.1.&#160;Creating a Consumer with a 
non-standard priority</h4></div></div></div><p>
+        In AMQP 0-9 and 0-9-1 the priority of the consumer can be set by 
adding an entry into the table provided as the
+        <code class="literal">arguments</code> field (known as the <code 
class="literal">filter</code> field on AMQP 0-9) of the
+        <code class="literal">basic.consume</code> method. The key for the 
entry must be the literal short string
+        <code class="literal">x-priority</code>, and the value of the entry 
must be an integral number in the range
+        -2<sup>31</sup> to 2<sup>31</sup>-1.
+      </p><p>
+        In AMQP 0-10 the priority of the consumer can be set in the map 
provided as the <code class="literal">arguments</code>
+        field of the <code class="literal">message.subscribe</code> method. 
The key for the entry must be the literal string
+        <code class="literal">x-priority</code>, and the value of the entry 
must be an integral number in the range
+        -2<sup>31</sup> to 2<sup>31</sup>-1.
+      </p><p>
+        In AMQP 1.0 the priority of the consumer is set in the <code 
class="literal">properties</code> map of the
+        <code class="literal">attach</code> frame where the broker side of the 
link represents the sending side of the link.
+        The key for the entry must be the literal string <code 
class="literal">priority</code>, and the value of the entry must
+        be an integral number in the range -2<sup>31</sup> to 2<sup>31</sup>-1.
+      </p><p>
+        When using the Qpid JMS client for AMQP 0-9/0-9-1/0-10 the consumer 
priority can be set in the address being
+        used for the Destination object.
+
+        </p><div class="table"><a id="d0e6032"></a><p 
class="title"><strong>Table&#160;9.1.&#160;Setting the consumer 
priority</strong></p><div class="table-contents"><table border="1" 
summary="Setting the consumer priority"><colgroup><col /><col 
/></colgroup><thead><tr><th>Syntax</th><th>Example</th></tr></thead><tbody><tr><td>Addressing</td><td>myqueue
 : { link : { x-subscribe: { arguments : { x-priority : '10' } } } 
}</td></tr><tr><td>Binding 
URL</td><td>direct://amq.direct/myqueue/myqueue?x-qpid-replay-priority='10'</td></tr></tbody></table></div></div><p><br
 class="table-break" />
+      </p></div></div></div><div class="navfooter"><hr /><table 
summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a 
accesskey="p" 
href="Java-Broker-Runtime-Flow-To-Disk.html">Prev</a>&#160;</td><td 
align="center" width="20%"><a accesskey="u" 
href="Java-Broker-Runtime.html">Up</a></td><td align="right" 
width="40%">&#160;<a accesskey="n" 
href="Java-Broker-Runtime-Background-Recovery.html">Next</a></td></tr><tr><td 
align="left" valign="top" width="40%">9.6.&#160;Flow to Disk&#160;</td><td 
align="center" width="20%"><a accesskey="h" 
href="Apache-Qpid-Broker-J-Book.html">Home</a></td><td align="right" 
valign="top" width="40%">&#160;9.8.&#160;Background 
Recovery</td></tr></table></div></div>
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/";>Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/";><img id="-apache-feather" 
width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0";>Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/0e1f0cc4/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Disk-Space-Management.html
----------------------------------------------------------------------
diff --git 
a/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Disk-Space-Management.html
 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Disk-Space-Management.html
new file mode 100644
index 0000000..35dff25
--- /dev/null
+++ 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Disk-Space-Management.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
+  <head>
+    <title>9.2.&#160;Disk Space Management - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git 
https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" 
alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache 
Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid 
Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ 
broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch 
router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a 
href="https://cwiki.apache.org/confluence/display/qpid/Index";>Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search"; method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" 
tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a 
href="/index.html">Home</a></li><li><a 
href="/releases/index.html">Releases</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/index.html">Qpid Broker-J 
7.0.0</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/book/index.html">Apache Qpid 
Broker-J</a></li><li>9.2.&#160;Disk Space Management</li></ul>
+
+        <div id="-middle-content">
+          <div class="docbook"><div class="navheader"><table 
summary="Navigation header" width="100%"><tr><th align="center" 
colspan="3">9.2.&#160;Disk Space Management</th></tr><tr><td align="left" 
width="20%"><a accesskey="p" 
href="Java-Broker-Runtime.html">Prev</a>&#160;</td><th align="center" 
width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" 
width="20%">&#160;<a accesskey="n" 
href="Java-Broker-Runtime-Producer-Transaction-Timeout.html">Next</a></td></tr></table><hr
 /></div><div class="section"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
id="Java-Broker-Runtime-Disk-Space-Management"></a>9.2.&#160;Disk Space 
Management</h2></div></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="Java-Broker-Runtime-Disk-Space-Management-Producer-Flow-Control"></a>9.2.1.&#160;Disk
 quota-based flow control</h3></div></div></div><p>
+        The Apache Qpid Broker-J supports a flow control mechanism which is 
triggered when a configured
+        disk quota is exceeded. This is supported by the BDB and Derby 
virtualhosts.
+    </p><p>
+        This functionality blocks all producers on reaching the disk overflow 
limit. When consumers consume the
+        messages, causing disk space usage to falls below the underflow limit, 
the producers are unblocked and continue
+        working as normal.
+    </p><p>
+        Two limits can be configured:
+    </p><p>
+        overfull limit - the maximum space on disk (in bytes).
+    </p><p>
+        underfull limit - when the space on disk drops below this limit, 
producers are allowed to resume publishing.
+    </p><p>
+        The overfull and underful limit can be specified when a new 
virtualhost is created or an exiting virtualhost is
+        edited. This can be done using the Store Overflow and Store Underfull 
settings within the virtual host creation
+        and edit dialogue. If editing an existing virtualhost, the virtualhost 
must be restarted for the new values to
+        take effect.
+    </p><p>
+        The disk quota functionality is based on "best effort" principle. This 
means the broker cannot guarantee that
+        the disk space limit will not be exceeded. If several concurrent 
transactions are started before the limit is
+        reached, which collectively cause the limit to be exceeded, the broker 
may allow all of them to be committed.
+    </p><p>
+        The Broker will also impose flow control if the filesystem hosting a 
virtualhost exceeds a <a class="link" 
href="Java-Broker-Management-Managing-Broker.html#Java-Broker-Management-Managing-Broker-Context-StoreFilesystemMaxUsagePercent">configured
+        percentage.</a>.
+    </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>
+            The <span class="emphasis"><em>Producer Flow Control</em></span> 
can be configured on individual queue using
+            <span class="emphasis"><em>Producer Flow Control</em></span> 
overflow policy.
+            For more details, please read<a class="xref" 
href="Java-Broker-Concepts-Queues.html#Java-Broker-Concepts-Queue-OverflowPolicy"
 title="4.7.5.&#160;Controlling Queue Size">Section&#160;4.7.5, 
&#8220;Controlling Queue Size&#8221;</a>.
+        </p></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="d0e5723"></a>9.2.1.1.&#160;Broker Log Messages for quota 
flow control</h4></div></div></div><p>
+            There are two broker log messages that may occur if flow control 
through disk quota limits is enabled. When
+            the virtual host is blocked due to exceeding of the disk quota 
limit the following message appears in the
+            broker log
+            </p><pre class="programlisting">
+                [vh(/test)/ms(BDBMessageStore)] MST-1008 : Store overfull, 
flow control will be enforced
+            </pre><p>
+            When virtual host is unblocked after cleaning the disk space the 
following message appears in the broker log
+            </p><pre class="programlisting">
+                [vh(/test)/ms(BDBMessageStore)] MST-1009 : Store overfull 
condition cleared
+            </pre><p>
+        </p></div></div></div><div class="navfooter"><hr /><table 
summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a 
accesskey="p" href="Java-Broker-Runtime.html">Prev</a>&#160;</td><td 
align="center" width="20%"><a accesskey="u" 
href="Java-Broker-Runtime.html">Up</a></td><td align="right" 
width="40%">&#160;<a accesskey="n" 
href="Java-Broker-Runtime-Producer-Transaction-Timeout.html">Next</a></td></tr><tr><td
 align="left" valign="top" 
width="40%">Chapter&#160;9.&#160;Runtime&#160;</td><td align="center" 
width="20%"><a accesskey="h" 
href="Apache-Qpid-Broker-J-Book.html">Home</a></td><td align="right" 
valign="top" width="40%">&#160;9.3.&#160;Producer Transaction 
Timeout</td></tr></table></div></div>
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/";>Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/";><img id="-apache-feather" 
width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0";>Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/0e1f0cc4/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Flow-To-Disk.html
----------------------------------------------------------------------
diff --git 
a/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Flow-To-Disk.html
 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Flow-To-Disk.html
new file mode 100644
index 0000000..d081bbb
--- /dev/null
+++ 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Flow-To-Disk.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
+  <head>
+    <title>9.6.&#160;Flow to Disk - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git 
https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" 
alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache 
Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid 
Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ 
broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch 
router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a 
href="https://cwiki.apache.org/confluence/display/qpid/Index";>Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search"; method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" 
tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a 
href="/index.html">Home</a></li><li><a 
href="/releases/index.html">Releases</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/index.html">Qpid Broker-J 
7.0.0</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/book/index.html">Apache Qpid 
Broker-J</a></li><li>9.6.&#160;Flow to Disk</li></ul>
+
+        <div id="-middle-content">
+          <div class="docbook"><div class="navheader"><table 
summary="Navigation header" width="100%"><tr><th align="center" 
colspan="3">9.6.&#160;Flow to Disk</th></tr><tr><td align="left" width="20%"><a 
accesskey="p" 
href="Java-Broker-Runtime-Close-Connection-When-No-Route.html">Prev</a>&#160;</td><th
 align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" 
width="20%">&#160;<a accesskey="n" 
href="Java-Broker-Runtime-Consumers.html">Next</a></td></tr></table><hr 
/></div><div class="section"><div class="titlepage"><div><div><h2 class="title" 
style="clear: both"><a id="Java-Broker-Runtime-Flow-To-Disk"></a>9.6.&#160;Flow 
to Disk</h2></div></div></div><p>Flow to disk limits the amount of <a 
class="link" href="Java-Broker-Runtime-Memory.html" 
title="9.11.&#160;Memory">direct and heap memory</a>
+    that can be occupied by messages. Once this
+    limit is reached any new transient messages and all existing transient 
messages will be
+    transferred to disk. Newly arriving transient messages will continue to go 
to the disk until the
+    cumulative size of all messages falls below the limit once again.</p><p>By 
default the Broker makes 75% 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 75% 
available for messages.
+    The first queue will have a target size of 320MB and the second 430MB. 
Once 750MB 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 750MB.</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 75% of the JVM maximum heap size.</p></div><div class="navfooter"><hr 
/><table summary="Navigation footer" width="100%"><tr><td align="left" 
width="40%"><a accesskey="p" 
href="Java-Broker-Runtime-Close-Connection-When-No-Route.html">Prev</a>&#160;</td><td
 align="center" width="20%"><a accesskey="u" 
href="Java-Broker-Runtime.html">Up</a></td><td align="right" 
width="40%">&#160;<a accesskey="n" 
href="Java-Broker-Runtime-Consumers.html">Next</a></td></tr><tr><td 
align="left" valign="top" width="40%">9.5.&#160;Closing client connections on 
unroutable mandatory messages&#160;</td><td align="center" width="20%"><a 
accesskey="h" href="Apache-Qpid-Broker-J-Book.html">Home</a></td><td 
align="right" valign="top" 
width="40%">&#160;9.7.&#160;Consumers</td></tr></table></div></div>
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/";>Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/";><img id="-apache-feather" 
width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0";>Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/0e1f0cc4/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html
----------------------------------------------------------------------
diff --git 
a/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html
 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html
new file mode 100644
index 0000000..3832693
--- /dev/null
+++ 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Handling-Undeliverable-Messages.html
@@ -0,0 +1,179 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
+  <head>
+    <title>9.4.&#160;Handing Undeliverable Messages - Apache 
Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git 
https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" 
alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache 
Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid 
Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ 
broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch 
router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a 
href="https://cwiki.apache.org/confluence/display/qpid/Index";>Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search"; method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" 
tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a 
href="/index.html">Home</a></li><li><a 
href="/releases/index.html">Releases</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/index.html">Qpid Broker-J 
7.0.0</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/book/index.html">Apache Qpid 
Broker-J</a></li><li>9.4.&#160;Handing Undeliverable Messages</li></ul>
+
+        <div id="-middle-content">
+          <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 successfu
 lly to a consumer (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 an 
attribute 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 via the queue's <span class="emphasis"><em>alternate 
binding</em></span> (if one has been defined), or will
+   discard the message.</p><p>When using AMQP 1.0 the current delivery count 
of a message is available to the consuming
+   application via the<code class="literal">message-count</code> message 
header (exposed via the
+   <code class="literal">JMSXDeliveryCount</code> JMS message property when 
using JMS).  When using the
+   AMQP 0-8..0-10 protocols this information is not available.</p><div 
class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p> When using AMQP 0-8..0-10, in order for a maximum 
delivery count to be enforced, the consuming application
+    <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. If the consuming application 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 Qpid JMS 
Client 0-x and using AMQP 0-8, 0-9, or 0-9-1
+    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></div></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;Alternate
 Binding</h3></div></div></div><p>Once the maximum delivery count is exceeded, 
if the queue has an <code class="literal">alternateBinding</code>
+    specified, the Broker automatically routes the message via the alternate 
binding.  The alternate binding
+    would normally specify a queue designated for that purpose of receiving 
the undeliverable messages.
+    By convention such queues are known as dead-letter queues or simply 
DLQs.</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="Apache-Qpid-Broker-J-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>
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/";>Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/";><img id="-apache-feather" 
width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0";>Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/0e1f0cc4/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Memory.html
----------------------------------------------------------------------
diff --git 
a/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Memory.html 
b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Memory.html
new file mode 100644
index 0000000..435c291
--- /dev/null
+++ b/content/releases/qpid-broker-j-7.0.0/book/Java-Broker-Runtime-Memory.html
@@ -0,0 +1,281 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements.  See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership.  The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License.  You may obtain a copy of the License at
+ -
+ -   http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied.  See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"; xml:lang="en">
+  <head>
+    <title>9.11.&#160;Memory - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git 
https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" 
alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache 
Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid 
Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/broker-j/index.html">Broker-J</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ 
broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch 
router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a 
href="https://cwiki.apache.org/confluence/display/qpid/Index";>Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search"; method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" 
tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a 
href="/index.html">Home</a></li><li><a 
href="/releases/index.html">Releases</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/index.html">Qpid Broker-J 
7.0.0</a></li><li><a 
href="/releases/qpid-broker-j-7.0.0/book/index.html">Apache Qpid 
Broker-J</a></li><li>9.11.&#160;Memory</li></ul>
+
+        <div id="-middle-content">
+          <div class="docbook"><div class="navheader"><table 
summary="Navigation header" width="100%"><tr><th align="center" 
colspan="3">9.11.&#160;Memory</th></tr><tr><td align="left" width="20%"><a 
accesskey="p" 
href="Java-Broker-Runtime-Connection-Limit.html">Prev</a>&#160;</td><th 
align="center" width="60%">Chapter&#160;9.&#160;Runtime</th><td align="right" 
width="20%">&#160;<a accesskey="n" 
href="Java-Broker-High-Availability.html">Next</a></td></tr></table><hr 
/></div><div class="section"><div class="titlepage"><div><div><h2 class="title" 
style="clear: both"><a 
id="Java-Broker-Runtime-Memory"></a>9.11.&#160;Memory</h2></div></div></div><div
 class="section"><div class="titlepage"><div><div><h3 class="title"><a 
id="Java-Broker-Runtime-Memory-Introduction"></a>9.11.1.&#160;Introduction</h3></div></div></div><p>
+      Understanding how the Qpid broker uses memory is essential to running a 
high performing and reliable service.
+      A wrongly configured broker can exhibit poor performance or even crash 
with an <code class="literal">OutOfMemoryError</code>.
+      Unfortunately, memory usage is not a simple topic and thus requires some 
in depth explanations.
+      This page should give the required background information to make 
informed decisions on how to configure your broker.
+    </p><p>
+      <a class="xref" 
href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Types" 
title="9.11.2.&#160;Types of Memory">Section&#160;9.11.2, &#8220;Types of 
Memory&#8221;</a> explains the two different kinds of Java memory most relevant 
to the broker.
+      <a class="xref" 
href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Usage" 
title="9.11.3.&#160;Memory Usage in the Broker">Section&#160;9.11.3, 
&#8220;Memory Usage in the Broker&#8221;</a> goes on to explain which parts of 
the broker use what kind of memory.
+      <a class="xref" 
href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Low-Memory" 
title="9.11.4.&#160;Low Memory Conditions">Section&#160;9.11.4, &#8220;Low 
Memory Conditions&#8221;</a> explains what happens when the system runs low on 
memory.
+      <a class="xref" 
href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Defaults" 
title="9.11.5.&#160;Defaults">Section&#160;9.11.5, &#8220;Defaults&#8221;</a> 
lays out the default settings of the Qpid broker.
+      Finally, <a class="xref" 
href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Tuning" 
title="9.11.6.&#160;Memory Tuning the Broker">Section&#160;9.11.6, 
&#8220;Memory Tuning the Broker&#8221;</a> gives some advice on tuning your 
broker.
+    </p></div><div class="section"><div class="titlepage"><div><div><h3 
class="title"><a id="Java-Broker-Runtime-Memory-Types"></a>9.11.2.&#160;Types 
of Memory</h3></div></div></div><p>
+      While Java has a couple of different internal memory types we will focus 
on the two types that are relevant to the Qpid broker.
+      Both of these memory types are taken from the same physical memory (RAM).
+    </p><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="d0e6179"></a>9.11.2.1.&#160;Heap</h4></div></div></div><p>
+        Normally, all objects are allocated from Java's heap memory.
+        Once, nothing references an object it is cleaned up by the Java 
Garbage Collector and it's memory returned to the heap.
+        This works fine for most use cases.
+        However, when interacting with other parts of the operating system 
using Java's heap is not ideal.
+        This is where the so called direct memory comes into play.
+      </p></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a 
id="d0e6184"></a>9.11.2.2.&#160;Direct</h4></div></div></div><p>
+        The world outside of the JVM, in particular the operating system (OS), 
does not know about Java heap memory and uses other structures like C arrays.
+        In order to interact with these systems Java needs to copy data 
between its own heap memory and these native structures.
+        This can become a bottle neck when there is a lot of exchange between 
Java and the OS like in I/O (both disk and network) heavy applications.
+        Java's solution to this is to allow programmers to request <code 
class="literal">ByteBuffer</code>s from so called direct memory.
+        This is an opaque structure that <span 
class="emphasis"><em>might</em></span> have an underlying implementation that 
makes it efficient to interact with the OS.
+        Unfortunately, the GC is not good at tracking direct memory and in 
general it is inadvisable to use direct memory for regular objects.
+      </p></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="Java-Broker-Runtime-Memory-Usage"></a>9.11.3.&#160;Memory Usage in the 
Broker</h3></div></div></div><p>
+      This section lists some note worthy users of memory within the broker 
and where possible lists their usage of heap and direct memory.
+      Note that to ensure smooth performance some heap memory should remain 
unused by the application and be reserved for the JVM to do house keeping and 
garbage collection.
+      <a class="link" 
href="https://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/util/DbCacheSize.html";
 target="_top">Some guides</a> advise to reserve up to 30% of heap memory for 
the JVM.
+    </p><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a 
id="d0e6203"></a>9.11.3.1.&#160;Broker</h4></div></div></div><p>
+        The broker itself uses a moderate amount of heap memory (&#8776;15 MB).
+        However, each connection and session comes with a heap overhead of 
about 17 kB and 15 kB respectively.
+        In addition, each connection reserves 512 kB direct memory for network 
I/O.
+      </p></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a id="d0e6208"></a>9.11.3.2.&#160;Virtual 
Hosts</h4></div></div></div><p>
+        The amount of memory a Virtual Host uses depends on its type.
+        For a JSON Virtual Host Node with a BDB Virtual Host the heap memory 
usage is approximately 2 MB.
+        However, each BDB Virtual Hosts has a mandatory cache in heap memory 
which has an impact on performance.
+        See <a class="link" 
href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Usage-BDB" 
title="9.11.3.4.&#160;Message Store">below</a> for more information.
+      </p></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a 
id="d0e6216"></a>9.11.3.3.&#160;Messages</h4></div></div></div><p>
+        Messages and their headers are kept in direct memory and have an 
additional overhead of approximately 1 kB heap memory each.
+        This means that most brokers will want to have more direct memory than 
heap memory.
+        When many small messages accumulate on the broker the 1 kB heap memory 
overhead can become a <a class="link" 
href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Low-Memory-Heap"
 title="9.11.4.1.&#160;Low on Heap Memory">limiting factor</a>.
+      </p><p>
+        When the broker is <a class="link" 
href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Low-Memory-Direct"
 title="9.11.4.2.&#160;Low on Direct Memory">running low on direct memory</a>
+        it will evict enqueued 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 flowed to disk messages need to be re-read from disk 
before delivery.
+      </p><p>Please, note that messages from uncommitted transactions are not
+        <a class="link" href="Java-Broker-Runtime-Flow-To-Disk.html" 
title="9.6.&#160;Flow to Disk">flowed to disk</a> as part of
+        <a class="link" 
href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Low-Memory-Direct"
 title="9.11.4.2.&#160;Low on Direct Memory">running into low direct memory 
conditions</a>,
+        as they are not enqueued yet. The <code 
class="literal">Connection</code> has its own threshold for
+        keeping messages from uncommitted transactions in memory. Only when 
<code class="literal">Connection</code> threshold
+        is breached, the uncommitted messages on the connection are
+        <a class="link" href="Java-Broker-Runtime-Flow-To-Disk.html" 
title="9.6.&#160;Flow to Disk">flowed to disk</a>.</p></div><div 
class="section"><div class="titlepage"><div><div><h4 class="title"><a 
id="Java-Broker-Runtime-Memory-Usage-BDB"></a>9.11.3.4.&#160;Message 
Store</h4></div></div></div><div class="section"><div 
class="titlepage"><div><div><h5 class="title"><a id="d0e6252"></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="d0e6268"></a>Derby</h5></div></div></div><p>
+          TODO
+        </p></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="d0e6273"></a>9.11.3.5.&#160;HTTP Management</h4></div></div></div><p>
+        Qpid uses Jetty for the HTTP Management (both REST and Web Management 
Console).
+        When the management plugin is loaded it will allocate the memory it 
needs and should not require more memory during operation and can thus be 
largely ignored.
+      </p></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="Java-Broker-Runtime-Memory-Low-Memory"></a>9.11.4.&#160;Low Memory 
Conditions</h3></div></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="Java-Broker-Runtime-Memory-Low-Memory-Heap"></a>9.11.4.1.&#160;Low on Heap 
Memory</h4></div></div></div><p>
+        When the broker runs low on heap memory performance will degrade 
because the JVM will trigger full garbage collection (GC) events in a struggle 
to free memory.
+        These full GC events are also called stop-the-world events as they 
completely halt the execution of the Java application.
+        Stop-the-world-events may take any where from a couple of milliseconds 
up to several minutes.
+        Should the heap memory demands rise even further the JVM will 
eventually throw an OutOfMemoryError which will cause the broker to shut down.
+      </p></div><div class="section"><div class="titlepage"><div><div><h4 
class="title"><a 
id="Java-Broker-Runtime-Memory-Low-Memory-Direct"></a>9.11.4.2.&#160;Low on 
Direct Memory</h4></div></div></div><p>
+        When the broker detects that it uses 75% of available direct memory it 
will start flowing incoming transient messages to disk and reading them back 
before delivery.
+        This will prevent the broker from running out of direct memory but may 
degrade performance by requiring disk I/O.
+      </p></div></div><div class="section"><div 
class="titlepage"><div><div><h3 class="title"><a 
id="Java-Broker-Runtime-Memory-Defaults"></a>9.11.5.&#160;Defaults</h3></div></div></div><p>
+      By default Qpid uses these settings:
+      </p><div class="itemizedlist"><ul class="itemizedlist" 
style="list-style-type: disc; "><li class="listitem">
+          0.5 GB heap memory
+        </li><li class="listitem">
+          1.5 GB direct memory
+        </li><li class="listitem">
+          5% of heap reserved for the BDB JE cache.
+        </li><li class="listitem">
+          Start flow-to-disk at 75% direct memory utilisation.
+        </li></ul></div><p>
+      As an example, this would accommodate a broker with 50 connections, each 
serving 5 sessions, and each session having 1000 messages of 1 kB on queues in 
the broker.
+      This means a total of 250 concurrent sessions and a total of 250000 
messages without flowing messages to disk.
+    </p></div><div class="section"><div class="titlepage"><div><div><h3 
class="title"><a id="Java-Broker-Runtime-Memory-Tuning"></a>9.11.6.&#160;Memory 
Tuning the Broker</h3></div></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="d0e6309"></a>9.11.6.1.&#160;Java Tuning</h4></div></div></div><p>
+        Most of these options are implementation specific. It is assumed you 
are using Oracle Java 1.8.
+        </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="d0e6323"></a>9.11.6.2.&#160;Qpid 
Tuning</h4></div></div></div><div class="itemizedlist"><ul class="itemizedlist" 
style="list-style-type: disc; "><li class="listitem">
+          The system property <code 
class="literal">qpid.broker.bdbTotalCacheSize</code> sets the total amount of 
heap memory (in bytes) allocated to BDB caches.
+        </li><li class="listitem">
+          The system property <code 
class="literal">broker.flowToDiskThreshold</code> sets the threshold (in bytes) 
for flowing transient messages to disk.
+          Should the broker use more than direct memory it will flow incoming 
messages to disk.
+          Should utilisation fall beneath the threshold it will stop flowing 
messages to disk.
+        </li><li class="listitem">
+          The system property <code 
class="literal">connection.maxUncommittedInMemorySize</code> sets the threshold 
(in bytes)
+          for total messages sizes (in bytes) from connection uncommitted 
transactions when messages are hold in memory.
+          If threshold is exceeded, all messages from connection in-flight 
transactions are flowed to disk including
+          those arriving after breaching the threshold.
+        </li></ul></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="d0e6342"></a>9.11.6.3.&#160;Formulae</h4></div></div></div><p>
+        We developed a simple formula which estimates the <span 
class="emphasis"><em>minimum</em></span> memory usage of the broker under 
certain usage.
+        These are rough estimate so we strongly recommend testing your 
configuration extensively.
+        Also, if your machine has more memory available by all means use more 
memory as it can only improve the performance and stability of your broker.
+        However, remember that both heap and direct memory are served from 
your computer's physical memory so their sum should never exceed the physically 
available RAM (minus what other processes use).
+      </p><p>
+        </p><div class="informalequation"><span class="mathphrase">
+            memory<sub>heap</sub> = 15 MB + 20 kB * N<sub>sessions</sub> + 1.5 
kB * N<sub>messages</sub> + 100 kB * N<sub>connections</sub>
+          </span></div><p>
+      </p><p>
+        </p><div class="informalequation"><span class="mathphrase">
+            memory<sub>direct</sub> = 2 MB + (200 B + 
averageSize<sub>msg</sub> *2)*  N<sub>messages</sub> + 1MB * 
N<sub>connections</sub>
+          </span></div><p>
+      </p><p>
+        Where <span class="mathphrase">N</span> denotes the total number of 
connections/sessions/messages on the broker. Furthermore, for direct memory 
only the messages that have not been flowed to disk are relevant.
+      </p><div class="note" style="margin-left: 0.5in; margin-right: 
0.5in;"><h3 class="title">Note</h3><p>The formulae assume the worst case in 
terms of memory usage: persistent messages and TLS connections. Transient 
messages consume less heap memory than persistent and plain connections consume 
less direct memory than TLS
+          connections.
+        </p></div></div><div class="section"><div 
class="titlepage"><div><div><h4 class="title"><a 
id="d0e6394"></a>9.11.6.4.&#160;Things to Consider</h4></div></div></div><div 
class="section"><div class="titlepage"><div><div><h5 class="title"><a 
id="d0e6397"></a>Performance</h5></div></div></div><p>
+          Choosing a smaller direct memory size will lower the threshold for 
flowing transient messages to disk when messages accumulate on a queue.
+          This can have impact on performance in the transient case where 
otherwise no disk I/O would be involved.
+        </p><p>
+          Having too little heap memory will result in poor performance due to 
frequent garbage collection events. See <a class="xref" 
href="Java-Broker-Runtime-Memory.html#Java-Broker-Runtime-Memory-Low-Memory" 
title="9.11.4.&#160;Low Memory Conditions">Section&#160;9.11.4, &#8220;Low 
Memory Conditions&#8221;</a> for more details.
+        </p></div><div class="section"><div class="titlepage"><div><div><h5 
class="title"><a id="d0e6406"></a>OutOfMemoryError</h5></div></div></div><p>
+          Choosing too low heap memory can cause an OutOfMemoryError which 
will force the broker to shut down.
+          In this sense the available heap memory puts a hard limit on the 
number of messages you can have in the broker at the same time.
+        </p><p>
+          If the Java runs out of direct memory it also throws a 
OutOfMemoryError resulting the a broker shutdown.
+          Under normal circumstances this should not happen but needs to be 
considered when deviating from the default configuration, especially when 
changing the flowToDiskThreshold.
+        </p><p>
+          If you are sending very large messages you should accommodate for 
this by making sure you have enough direct memory.
+        </p></div></div></div></div><div class="navfooter"><hr /><table 
summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a 
accesskey="p" 
href="Java-Broker-Runtime-Connection-Limit.html">Prev</a>&#160;</td><td 
align="center" width="20%"><a accesskey="u" 
href="Java-Broker-Runtime.html">Up</a></td><td align="right" 
width="40%">&#160;<a accesskey="n" 
href="Java-Broker-High-Availability.html">Next</a></td></tr><tr><td 
align="left" valign="top" width="40%">9.10.&#160;Connection 
Limits&#160;</td><td align="center" width="20%"><a accesskey="h" 
href="Apache-Qpid-Broker-J-Book.html">Home</a></td><td align="right" 
valign="top" width="40%">&#160;Chapter&#160;10.&#160;High 
Availability</td></tr></table></div></div>
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/";>Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/";>License</a></li>
+            <li><a 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li>
+            <li><a 
href="http://www.apache.org/foundation/thanks.html";>Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/";><img id="-apache-feather" 
width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0";>Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>


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

Reply via email to