You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by bu...@apache.org on 2017/12/13 03:36:32 UTC

svn commit: r1022166 [5/8] - in /websites/production/activemq/content: ./ cache/ web-console.data/

Modified: websites/production/activemq/content/life-cycle.html
==============================================================================
--- websites/production/activemq/content/life-cycle.html (original)
+++ websites/production/activemq/content/life-cycle.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/load-testing-with-camel.html
==============================================================================
--- websites/production/activemq/content/load-testing-with-camel.html (original)
+++ websites/production/activemq/content/load-testing-with-camel.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/log4j-warn-no-appenders-could-be-found-for-logger.html
==============================================================================
--- websites/production/activemq/content/log4j-warn-no-appenders-could-be-found-for-logger.html (original)
+++ websites/production/activemq/content/log4j-warn-no-appenders-could-be-found-for-logger.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/logging-interceptor.html
==============================================================================
--- websites/production/activemq/content/logging-interceptor.html (original)
+++ websites/production/activemq/content/logging-interceptor.html Wed Dec 13 03:36:26 2017
@@ -35,6 +35,7 @@
           <link href='http://activemq.apache.org/styles/highlighter/styles/shCore.css' rel='stylesheet' type='text/css' /> 
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushXml.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
@@ -81,7 +82,7 @@
         <tr>
         <td valign="top" width="100%">
 <div class="wiki-content maincontent"><h2 id="LoggingInterceptor-LoggingInterceptor">Logging Interceptor</h2><p>The Logging Interceptor is a pretty trivial <a shape="rect" href="interceptors.html">Interceptor</a> which just logs to <a shape="rect" class="external-link" href="http://jakarta.apache.org/commons/logging/">Jakarta Commons Logging</a> or <a shape="rect" class="external-link" href="http://logging.apache.org/log4j/docs/">log4j</a> as messages are sent or acknowledged on a broker.</p><p>The default logging level used is <strong>INFO</strong>. If you want to increase/reduce the logging you can use <a shape="rect" href="how-do-i-change-the-logging.html">change it via commons logging or log4j</a>.</p><p>As of version 5.3 the logging Interceptor is more configurable. The idea is to log all events but be able to turn off logging for certain event groups by configuration.</p><p>Currently the following groups are supported:</p><div class="table-wrap"><table class="confluenceTable">
 <tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p><strong>Attribute</strong></p></th><th colspan="1" rowspan="1" class="confluenceTh"><p><strong>Description</strong></p></th><th colspan="1" rowspan="1" class="confluenceTh"><p><strong>Default Value</strong></p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>logAll</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Log all Events</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>logConnectionEvents</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Events related to connections and sessions</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>logTransactionEvents</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Events related to transaction handling</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>fals
 e</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>logConsumerEvents</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Events related to consuming messages</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>logProducerEvents</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Events related to producing messages</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>logInternalEvents</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Events normally not of Interest for users like failover, querying internal objects etc</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>logSessionEvents</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Events related to adding and removing sessions</p
 ></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td></tr></tbody></table></div><p>Only connection events logging is enabled by default.</p><p>You can enable the logging interceptor using the following <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-unit-tests/src/test/resources/org/apache/activemq/util/plugin-broker.xml">XML configuration</a>. This example enables all logging and disables the connection event logging:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;beans 
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;beans 
   xmlns="http://www.springframework.org/schema/beans" 
   xmlns:amq="http://activemq.apache.org/schema/core"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

Modified: websites/production/activemq/content/manage-durable-subscribers.html
==============================================================================
--- websites/production/activemq/content/manage-durable-subscribers.html (original)
+++ websites/production/activemq/content/manage-durable-subscribers.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/maven-snapshot-repository-in-your-pom.html
==============================================================================
--- websites/production/activemq/content/maven-snapshot-repository-in-your-pom.html (original)
+++ websites/production/activemq/content/maven-snapshot-repository-in-your-pom.html Wed Dec 13 03:36:26 2017
@@ -35,6 +35,7 @@
           <link href='http://activemq.apache.org/styles/highlighter/styles/shCore.css' rel='stylesheet' type='text/css' /> 
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushXml.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
@@ -81,7 +82,7 @@
         <tr>
         <td valign="top" width="100%">
 <div class="wiki-content maincontent"><p>ActiveMQ</p><p>In your pom.xml file you can add the Maven 2 snapshot repository if you want to try out the SNAPSHOT versions:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">  &lt;repository&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">  &lt;repository&gt;
       &lt;id&gt;apache.snapshots&lt;/id&gt;
       &lt;name&gt;Apache Development Snapshot Repository&lt;/name&gt;
       &lt;url&gt;https://repository.apache.org/content/repositories/snapshots/&lt;/url&gt;
@@ -94,7 +95,7 @@
   &lt;/repository&gt;
 </pre>
 </div></div><p>Then you can use the SNAPSHOT version of ActiveMQ in your <code>pom.xml</code>:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">    &lt;dependency&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">    &lt;dependency&gt;
         &lt;groupId&gt;org.apache.activemq&lt;/groupId&gt;
         &lt;artifactId&gt;activemq-broker&lt;/artifactId&gt;
         &lt;version&gt;5.14.0-SNAPSHOT&lt;/version&gt;

Modified: websites/production/activemq/content/maven2-activemq-broker-plugin.html
==============================================================================
--- websites/production/activemq/content/maven2-activemq-broker-plugin.html (original)
+++ websites/production/activemq/content/maven2-activemq-broker-plugin.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/message-cursors.html
==============================================================================
--- websites/production/activemq/content/message-cursors.html (original)
+++ websites/production/activemq/content/message-cursors.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/message-redelivery-and-dlq-handling.html
==============================================================================
--- websites/production/activemq/content/message-redelivery-and-dlq-handling.html (original)
+++ websites/production/activemq/content/message-redelivery-and-dlq-handling.html Wed Dec 13 03:36:26 2017
@@ -89,7 +89,7 @@ policy.setUseExponentialBackOff(true);
 policy.setMaximumRedeliveries(2);
 </pre>
 </div></div><p>Once a message's redelivery attempts exceeds the&#160;<strong><code>maximumRedeliveries</code></strong> configured for the <a shape="rect" href="redelivery-policy.html">Redelivery Policy</a>, a "Poison ACK" is sent back to the broker letting him know that the message was considered a poison pill. The Broker then takes the message and sends it to a Dead Letter Queue so that it can be analyzed later on.</p><p>The default Dead Letter Queue in ActiveMQ is called <strong><code>ActiveMQ.DLQ</code></strong>; all un-deliverable messages will get sent to this queue and this can be difficult to manage. So, you can set an&#160;<strong><code>individualDeadLetterStrategy</code></strong> in the destination policy map of the <strong><code>activemq.xml</code></strong> configuration file, which allows you to specify a specific dead letter queue prefix for a given queue or topic. You can apply this strategy using wild card if you like so that all queues get their own dead-letter queue,
  as is shown in the example below.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;broker&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;broker&gt;
   
   &lt;destinationPolicy&gt;
     &lt;policyMap&gt;
@@ -111,7 +111,7 @@ policy.setMaximumRedeliveries(2);
 &lt;/broker&gt;
 </pre>
 </div></div><p>See the <a shape="rect" href="redelivery-policy.html">Redelivery Policy</a> section for some more detail on the policy options.</p><h3 id="MessageRedeliveryandDLQHandling-AutomaticallyDiscardExpiredMessages">Automatically Discard Expired Messages</h3><p>Some folks simply need expired messages to be discarded instead of sent to the DLQ i.e., skip the DLQ entirely. This simplifies the management of the DLQ so that you're not sifting through loads of expired messages to find messages with real problems. To tell ActiveMQ to just discard expired messages, configure the <strong><code>processExpired</code></strong> property to false on a dead letter strategy:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;broker&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;broker&gt;
   
   &lt;destinationPolicy&gt;
    &lt;policyMap&gt;
@@ -134,7 +134,7 @@ policy.setMaximumRedeliveries(2);
 &lt;/broker&gt;
 </pre>
 </div></div><h3 id="MessageRedeliveryandDLQHandling-PlaceNon-PersistentMessagesOntoTheDead-LetterQueue">Place Non-Persistent Messages Onto The Dead-Letter Queue</h3><p>By default, ActiveMQ will not place undeliverable <em>non-persistent</em> messages on the dead-letter queue. The rationale for this behavior is that if the application doesn't care enough to make the message persistent, then there is little or no value in recording that the message was undeliverable. If you do want to place non-persistent messages on the dead-letter queue, then you should set <strong><code>processNonPersistent="true"</code></strong> on the dead-letter strategy.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;broker&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;broker&gt;
   
  &#160;&lt;destinationPolicy&gt;
    &lt;policyMap&gt;
@@ -156,7 +156,7 @@ policy.setMaximumRedeliveries(2);
 &lt;/broker&gt;
 </pre>
 </div></div><h3 id="MessageRedeliveryandDLQHandling-SettingExpirationonMessagesintheDLQ">Setting Expiration on Messages in the DLQ</h3><p>By default, ActiveMQ will <strong><em>never</em></strong> expire messages sent to the DLQ. However, from ActiveMQ 5.12 the&#160;<strong><code>deadLetterStrategy</code></strong> supports an&#160;<strong><code>expiration</code></strong> attribute whose value is given in milliseconds.</p><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Be selective in how this is applied. In particular do not apply expiration to your DLQ destinations by setting expiration on a default or inclusive wildcard policy entry.</p><p>If a DLQ entry expires and forwards to the same or another DLQ with expiry, you will introduce a loop that can be problematic if the strategy audit is disabled or it's s
 liding window is exceeded.</p></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;broker&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;broker&gt;
   
  &#160;&lt;destinationPolicy&gt;
    &lt;policyMap&gt;
@@ -177,7 +177,7 @@ policy.setMaximumRedeliveries(2);
     &lt;discarding/&gt;
 &lt;/deadLetterStrategy&gt;</pre>
 </div></div><p>This does the same thing as the plugin but on a per destination basis. The matching based on regular expressions of the plugin is a bit more powerful than destination matching so the plugin may still be useful in some cases.</p></div></div><p>&#160;</p><p>A very simple yet very useful plugin to the broker. This plugin allows the configuration of queues and topics, all or matched based on <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html" rel="nofollow">Java SE regular expressions</a>, to drop messages that have been sent to the DLQ. This is extremely useful when using <a shape="rect" href="slow-consumer-handling.html">constant pending message limit strategy</a> or the other eviction rules, but you don't want to incur the overhead of yet another consumer to clear the DLQ.</p><p>Below is an example of a basic configuration to drop everything:</p><div class="code panel pdl" style="border-width: 1px;"><div cla
 ss="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;beans&gt; 
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;beans&gt; 
   &lt;broker&gt;
     &lt;plugins&gt;
       &lt;discardingDLQBrokerPlugin dropAll="true" dropTemporaryTopics="true" dropTemporaryQueues="true"/&gt;
@@ -186,7 +186,7 @@ policy.setMaximumRedeliveries(2);
 &lt;/beans&gt;
 </pre>
 </div></div><p>Below is a slightly more complex example:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;beans&gt; 
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;beans&gt; 
   &lt;broker&gt;
     &lt;plugins&gt;
       &lt;discardingDLQBrokerPlugin dropOnly="MY.EXAMPLE.TOPIC.29 MY.EXAMPLE.QUEUE.87" reportInterval="1000"/&gt;
@@ -195,7 +195,7 @@ policy.setMaximumRedeliveries(2);
 &lt;/beans&gt;
 </pre>
 </div></div><ul><li>Notice that destination names are space delimited.</li><li>The&#160;<strong><code>reportInterval</code></strong> property is used to denote how frequently do we output how many messages we have dropped - use&#160;<strong><code>0</code></strong> to disable.</li></ul><p>Below is an even more complex example:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;beans&gt; 
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;beans&gt; 
   &lt;broker&gt;
     &lt;plugins&gt;
       &lt;discardingDLQBrokerPlugin dropOnly="MY.EXAMPLE.TOPIC.[0-9]{3} MY.EXAMPLE.QUEUE.[0-9]{3}" reportInterval="3000"/&gt;
@@ -204,7 +204,7 @@ policy.setMaximumRedeliveries(2);
 &lt;/beans&gt;
 </pre>
 </div></div><ul><li>Notice that the destination names use regular expressions. These match the number&#160;<strong><code>000..999</code></strong> at the end of each destination name.</li></ul><p>For more information, see the source code for the <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/plugin/DiscardingDLQBrokerPlugin.java">DiscardingDLQBrokerPlugin</a> and the <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/plugin/DiscardingDLQBroker.java">DiscardingDLQBroker</a></p><h3 id="MessageRedeliveryandDLQHandling-BrokerRedelivery(v5.7)">Broker Redelivery (v5.7)</h3><p>Typically a consumer handles redelivery so that it can maintain message order while a message appears as inflight on the broker. This means that redelivery is limited to a single consumer unless that consumer terminates. In this way th
 e broker is unaware of redelivery. With broker redelivery, it is possible to have the broker redeliver a message after a delay using a resend. This is implemented by a broker plugin that handles dead letter processing by redelivery via the scheduler. This is useful when total message order is not important and where through put and load distribution among consumers is. With broker redelivery, messages that fail delivery to a given consumer can get immediately re-dispatched.</p><p><br clear="none"> The feature is enabled via XML configuration as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;broker schedulerSupport="true"&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;broker schedulerSupport="true"&gt;
         
         &lt;plugins&gt;
             &lt;redeliveryPlugin fallbackToDeadLetter="true" 

Modified: websites/production/activemq/content/mirrored-queues.html
==============================================================================
--- websites/production/activemq/content/mirrored-queues.html (original)
+++ websites/production/activemq/content/mirrored-queues.html Wed Dec 13 03:36:26 2017
@@ -35,6 +35,7 @@
           <link href='http://activemq.apache.org/styles/highlighter/styles/shCore.css' rel='stylesheet' type='text/css' /> 
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushXml.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
@@ -111,7 +112,7 @@
 <p>To enable Mirrored Queues, set the <strong>useMirroredQueues</strong> property on <a shape="rect" class="external-link" href="http://activemq.apache.org/maven/activemq-core/apidocs/org/apache/activemq/broker/BrokerService.html">BrokerService</a> or add the following inside the &lt;broker&gt; element in the <a shape="rect" href="xml-configuration.html">Xml Configuration</a>:</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
     &lt;destinationInterceptors&gt;
         &lt;mirroredQueue copyMessage = "true" postfix=".qmirror" prefix=""/&gt;
     &lt;/destinationInterceptors&gt;

Modified: websites/production/activemq/content/mqtt.html
==============================================================================
--- websites/production/activemq/content/mqtt.html (original)
+++ websites/production/activemq/content/mqtt.html Wed Dec 13 03:36:26 2017
@@ -37,6 +37,7 @@
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushXml.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 
@@ -82,20 +83,20 @@
         <tr>
         <td valign="top" width="100%">
 <div class="wiki-content maincontent"><p>ActiveMQ supports the <a shape="rect" class="external-link" href="http://mqtt.org/" rel="nofollow">MQTT</a> protocol and will automatically map between JMS/NMS and MQTT clients. MQTT is a machine-to-machine (M2M) publish/subscribe messaging transport.</p><p>Please see the <a shape="rect" class="external-link" href="http://mqtt.org/" rel="nofollow">MQTT site</a> for more details</p><h3 id="MQTT-EnablingtheActiveMQBrokerforMQTT">Enabling the ActiveMQ Broker for MQTT</h3><p>Its very easy to enable ActiveMQ for MQTT. Just add a connector to the broker using the MQTT URL.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;transportConnectors&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;transportConnectors&gt;
    &lt;transportConnector name="mqtt" uri="mqtt://localhost:1883"/&gt;
 &lt;/transportConnectors&gt;
 </pre>
 </div></div><h3 id="MQTT-TheMQTTWireFormat">The MQTT Wire Format</h3><p>MQTT uses a compact binary format that can be configured with the following options. &#160;All options can be configured on a Brokers transport bind URI.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>maxFrameSize</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>268435456</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(v5.12.0) Maximum frame size that can be sent. The protocol limit is 256 megabytes and his value cannot be set higher. Can help help prevent OOM DOS attacks</p></td></tr></tbody></table></div><p>All options must be prepended with&#160;<code>wireFormat</code>&#160;in order to t
 ake effect. Without this proper formatting, the option will have zero effect.</p><h4 id="MQTT-ExampleWireFormatConfiguration">Example Wire Format Configuration<br clear="none">&#160;</h4><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">     &lt;transportConnector name="mqtt" uri="mqtt://localhost:61612?wireFormat.maxFrameSize=100000"/&gt;</pre>
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">     &lt;transportConnector name="mqtt" uri="mqtt://localhost:61612?wireFormat.maxFrameSize=100000"/&gt;</pre>
 </div></div><h3 id="MQTT-Security">Security</h3><p>The ActiveMQ MQTT Transport implementation fully supports an <a shape="rect" href="security.html">ActiveMQ security</a> mechanism. Also, the authorization policies will be applied when you try to access (read/write) certain destinations.</p><h3 id="MQTT-EnablingMQTToverNIO">Enabling MQTT over NIO</h3><p>For better scalability (and performance) you might want to run the MQTT protocol over NIO transport. To do that just use <code>mqtt+nio</code> transport prefix instead of <code>matt</code>. For example, add the following transport configuration in your XML file</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">     &lt;transportConnector name="mqtt+nio" uri="mqtt+nio://localhost:1883"/&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">     &lt;transportConnector name="mqtt+nio" uri="mqtt+nio://localhost:1883"/&gt;
 </pre>
 </div></div><p>This transport use <a shape="rect" class="external-link" href="http://activemq.apache.org/configuring-transports.html#ConfiguringTransports-TheNIOTransport">NIO transport</a> underneath and will generally use much less threads than standard connector.</p><h3 id="MQTT-EnablingMQTToverNIO+SSL">Enabling MQTT over NIO + SSL</h3><p>The MQTT transport also supports using NIO and SSL. To enable this option, use the mqtt+nio+ssl protocol - e.g.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">     &lt;transportConnector name="mqtt+nio" uri="mqtt+nio+ssl://localhost:1883"/&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">     &lt;transportConnector name="mqtt+nio" uri="mqtt+nio+ssl://localhost:1883"/&gt;
 </pre>
 </div></div><ul><li>For more details on using SSL with ActiveMQ see the following article (<a shape="rect" class="external-link" href="http://activemq.apache.org/how-do-i-use-ssl.html">How do I use SSL</a>).</li></ul><h3 id="MQTT-WorkingwithDestinationswithMQTT">Working with Destinations with MQTT</h3><p>MQTT supports hierarchies and wildcards, though the delimiters and characters are different: - Here's the mapping:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>function</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>ActiveMQ</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>MQTT</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>separator</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>.</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>/</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>element</p></t
 d><td colspan="1" rowspan="1" class="confluenceTd"><p><code>*</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>+<br clear="none"></code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>sub tree</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>&gt;</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>#<br clear="none"></code></p></td></tr></tbody></table></div><p>These values are automatically transposed between clients using JMS/NMS/Stomp and clients using MQTTT. For example - a client subscribing to "foo/#/bar" would receive messages published on a JMS Topic of foo.blah.bar.</p><h3 id="MQTT-Messagetransformations">Message transformations</h3><p>MQTT messages are transformed into an JMS ByteMessage. Conversely, the body of any JMS Message is converted to a byte buffer to be the payload of an MQTT message.</p><h3 id="MQTT-KeepAlive">Keep Alive</h3><p>When a client connects, it will send a keep-alive dur
 ation, usually defaulting to 10s. ActiveMQ will honor the keep-alive duration by setting up an Inactivity Monitor that allows a grace period of 1.5 * duration. After that grace period duration elapses a connection could be closed if there is no activity. A broker receiving a PINGREQ and sending PINGRESP is considered activity to keep the connection opened.</p><p>If a client sends a keep-alive value of 0, ActiveMQ will not set up an <a shape="rect" class="external-link" href="http://activemq.apache.org/activemq-inactivitymonitor.html">Inactivity Monitor</a> and connections will not be auto-shutdown due to inactivity. This however can lead to potentially leaky connections, so a default keep alive can be set on the server side (by an admin, for example) to not allow inactive connections to hang. This default keep alive would only be used if specified and if the client requests a keep-alive value of 0. The unit for the keep-alive value is milliseconds.</p><p>To enable a default, server-
 side MQTT keep alive:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;transportConnector name="mqtt" uri="mqtt://localhost:1883?transport.defaultKeepAlive=60000"/&gt;</pre>
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;transportConnector name="mqtt" uri="mqtt://localhost:1883?transport.defaultKeepAlive=60000"/&gt;</pre>
 </div></div><h3 id="MQTT-MessagePrefetch">Message Prefetch</h3><p>When MQTT client connects, it locally create JMS-like consumer to the broker. In older versions this consumer was created with the prefetch size of 1 (message prefetching is explained <a shape="rect" href="what-is-the-prefetch-limit-for.html">here</a> in more details). Starting with 5.11.0 release, the prefetch size is adjusted to the default value for the appropriate JMS subscription. QoS=0 subscriptions have default prefetch of regular non-persistent topic subscriptions, while QoS=1 and QoS=2 are assigned prefetch size of durable subscribers or the queue subscriptions depending on the subscription strategy used (see the next section for more details). Default prefetch values are listed <a shape="rect" href="what-is-the-prefetch-limit-for.html">here</a>.</p><p>To change default value of the prefetch size, you can use&#160;<em>activeMQSubscriptionPrefetch</em> transport option, like</p><div class="code panel pdl" styl
 e="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;transportConnector name="mqtt" uri="mqtt://localhost:1883?transport.activeMQSubscriptionPrefetch=32766"/&gt;</pre>
 </div></div><h3 id="MQTT-SubscriptionStrategy">Subscription Strategy</h3><p>ActiveMQ is a JMS broker in its core, so there needs to be some mapping between MQTT subscriptions and JMS semantics. Subscriptions with QoS=0 (At Most Once) are directly mapped to plain JMS non-persistent topics. For reliable messaging, QoS=1 and QoS=2, by default subscriptions are transformed to JMS durable topic subscribers. This behaviour is desired in most scenarios. For some use cases, it is useful to map these subscriptions to <a shape="rect" href="virtual-destinations.html">virtual topics</a>. Virtual topics provide a better scalability and are generally better solution if you want to use you MQTT subscribers over network of brokers. To change subscription strategy to use virtual topic, use the following settings:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">

Modified: websites/production/activemq/content/networks-of-brokers.html
==============================================================================
--- websites/production/activemq/content/networks-of-brokers.html (original)
+++ websites/production/activemq/content/networks-of-brokers.html Wed Dec 13 03:36:26 2017
@@ -37,6 +37,7 @@
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushXml.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 
@@ -82,7 +83,7 @@
         <tr>
         <td valign="top" width="100%">
 <div class="wiki-content maincontent"><p>To provide massive scalability of a large messaging fabric you typically want to allow many brokers to be connected together into a network so that you can have as many clients as you wish all logically connected together - and running as many message brokers as you need based on your number of clients and network topology.</p><p>If you are using <a shape="rect" href="topologies.html">client/server or hub/spoke style topology</a> then the broker you connect to becomes a single point of failure which is another reason for wanting a network (or cluster) of brokers so that you can survive failure of any particular broker, machine or subnet.</p><p>From 1.1 onwards of ActiveMQ supports <em>networks of brokers</em> which allows us to support <a shape="rect" href="how-do-distributed-queues-work.html">distributed queues and topics</a> across a network of brokers.</p><p>This allows a client to connect to any broker in the network - and fail over to an
 other broker if there is a failure - providing from the clients perspective a <a shape="rect" href="ha.html">HA</a> cluster of brokers.</p><p><strong>N.B.</strong> By default a network connection is one way only - the broker that establishes the connection <em>passes messages to</em> the broker(s) its connected to. From version 5.x of ActiveMQ, a network connection can be optionally enabled to be duplex, which can be useful for hub and spoke architectures, where the hub is behind a firewall etc.</p><h2 id="NetworksofBrokers-Configuringanetworkofbrokers">Configuring a network of brokers</h2><p>The easiest way to configure a network of brokers is via the <a shape="rect" href="xml-configuration.html">Xml Configuration</a>. There are two main ways to create a network of brokers</p><ul><li>use a hard coded list of networkConnector elements.</li></ul><ul><li>use Discovery to detect brokers (multicast or rendezvous).</li></ul><h3 id="NetworksofBrokers-ExamplewithafixedlistofURIs">Example w
 ith a fixed list of URIs</h3><p>Here is an example of using the fixed list of URIs</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 
 &lt;beans xmlns="http://activemq.org/config/1.0"&gt;
 
@@ -103,7 +104,7 @@
 &lt;/beans&gt;
 </pre>
 </div></div><p>ActiveMQ also supports other transports than tcp to be used for the network connector such as http.</p><h3 id="NetworksofBrokers-Exampleusingmulticastdiscovery">Example using multicast discovery</h3><p>This example uses multicast <a shape="rect" class="external-link" href="http://activemq.apache.org/discovery.html">discovery</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 
 &lt;beans xmlns="http://activemq.org/config/1.0"&gt;
 
@@ -124,7 +125,7 @@
 &lt;/beans&gt;
 </pre>
 </div></div><h2 id="NetworksofBrokers-Startingnetworkconnectors">Starting network connectors</h2><p>By default, network connectors are initiated serially as part of the broker start up sequence. When some networks are slow, they prevent other networks from starting in a timely manner. Version 5.5 supports the broker attribute networkConnectorStartAsync="true" which will cause the broker to use an executor to start network connectors in parallel, asynchronous to a broker start.</p><h2 id="NetworksofBrokers-Staticdiscovery">Static discovery</h2><p>With <code>static:</code> discovery you can hard code the list of broker URLs. A network connector will be created for each one.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">    &lt;networkConnectors&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">    &lt;networkConnectors&gt;
       &lt;networkConnector uri="static:(tcp://host1:61616,tcp://host2:61616,tcp://..)"/&gt;
     &lt;/networkConnectors&gt;
 </pre>
@@ -132,12 +133,12 @@
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">uri="static:(tcp://host1:61616,tcp://host2:61616)?maxReconnectDelay=5000&amp;useExponentialBackOff=false"
 </pre>
 </div></div><h2 id="NetworksofBrokers-MasterSlaveDiscovery">MasterSlave Discovery</h2><p>A common configuration option for a network of brokers is to establish a network bridge between a broker and an n+1 broker pair (master/slave). Typical configurations involve using the <code>failover:</code> transport, but there are a some other non-intuitive options that must be configured for it to work as desired. For this reason, ActiveMQ v5.6+ has a convenience discovery agent that can be specified with the <code>masterslave:</code> transport prefix:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">    &lt;networkConnectors&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">    &lt;networkConnectors&gt;
       &lt;networkConnector uri="masterslave:(tcp://host1:61616,tcp://host2:61616,tcp://..)"/&gt;
     &lt;/networkConnectors&gt;
 </pre>
 </div></div><p>The URIs are listed in order for: MASTER,SLAVE1,SLAVE2...SLAVE<img class="emoticon emoticon-thumbs-down" src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/thumbs_down.png" data-emoticon-name="thumbs-down" alt="(thumbs down)"></p><p>The same configuration options for <code>static:</code> are available for <code>masterslave:</code></p><h2 id="NetworksofBrokers-NetworkConnectorProperties">NetworkConnector Properties</h2><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>name</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>bridge</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>name of the network -
  for more than one network connector between the same two brokers - use different names</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>dynamicOnly</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>if true, only activate a networked durable subscription when a corresponding durable subscription reactivates, by default they are activated on startup.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>decreaseNetworkConsumerPriority</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>if true, starting at priority -5, decrease the priority for dispatching to a network Queue consumer the further away it is (in network hops) from the producer. When false all network consumers use same default priority(0) as local consumers</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>networkTTL</
 p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the number of brokers in the network that messages and subscriptions can pass through (sets both message&amp;consumer -TTL)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>messageTTL</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(version 5.9) the number of brokers in the network that messages can pass through</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>consumerTTL</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(version 5.9) the number of brokers in the network that subscriptions can pass through (keep to 1 in a mesh)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>conduitSubscriptions</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</
 p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>multiple consumers subscribing to the same destination are treated as one consumer by the network</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>excludedDestinations</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>empty</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>destinations matching this list won't be forwarded across the network (this only applies to <span>dynamicallyIncludedDestinations)</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>dynamicallyIncludedDestinations</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>empty</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>destinations that match this list <strong>will</strong> be forwarded across the network <strong>n.b.</strong> an empty list means all destinations not in the exluded list will be forwarded</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>u
 seVirtualDestSubs</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>if true, the network connection will listen to advisory messages for virtual destination consumers</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>staticallyIncludedDestinations</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>empty</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>destinations that match will always be passed across the network - even if no consumers have ever registered an interest</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>duplex</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>if true, a network connection will be used to both produce <strong><em>AND</em></strong> Consume messages. This is useful for hub and spoke scenarios when the hub is behind a firewall etc.</p></td></tr><tr
 ><td colspan="1" rowspan="1" class="confluenceTd"><p>prefetchSize</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>1000</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sets the <a shape="rect" href="what-is-the-prefetch-limit-for.html">prefetch size</a> on the network connector's consumer. It must be &gt; 0 because network consumers do not poll for messages</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>suppressDuplicateQueueSubscriptions</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(from 5.3) if true, duplicate subscriptions in the network that arise from network intermediaries will be suppressed. For example, given brokers A,B and C, networked via multicast discovery. A consumer on A will give rise to a networked consumer on B and C. In addition, C will network to B (based on the network consumer from A) and B will network to C. When true, the network bridg
 es between C and B (being duplicates of their existing network subscriptions to A) will be suppressed. Reducing the routing choices in this way provides determinism when producers or consumers migrate across the network as the potential for dead routes (stuck messages) are eliminated. networkTTL needs to match or exceed the broker count to require this intervention.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>bridgeTempDestinations</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Whether to broadcast advisory messages for created temp destinations in the network of brokers or not. Temp destinations are typically created for request-reply messages. Broadcasting the information about temp destinations is turned on by default so that consumers of a request-reply message can be connected to another broker in the network and still send back the reply on the temporary destination specified
  in the JMSReplyTo header. In an application scenario where most/all messages use request-reply pattern, this will generate additional traffic on the broker network as every message typically sets a unique JMSReplyTo address (which causes a new temp destination to be created and broadcasted via an advisory message in the network of brokers). <br clear="none"> When disabling this feature such network traffic can be reduced but then producer and consumers of a request-reply message need to be connected to the same broker. Remote consumers (i.e. connected via another broker in your network) won't be able to send the reply message but instead raise a "temp destination does not exist" exception.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>alwaysSyncSend</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(version 5.6) When true, non persistent messages are sent to the remote broker using re
 quest/reply in place of a oneway. This setting treats both persistent and non-persistent messages the same.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>staticBridge</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(version 5.6) If set to true, broker will not dynamically respond to new consumers. It will only use <code>staticallyIncludedDestinations</code> to create demand subscriptions</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">userName</td><td colspan="1" rowspan="1" class="confluenceTd">null</td><td colspan="1" rowspan="1" class="confluenceTd">The username to authenticate against the remote broker</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">password</td><td colspan="1" rowspan="1" class="confluenceTd">null</td><td colspan="1" rowspan="1" class="confluenceTd">The password for the username to authenticate against the remote broker</td></tr><
 /tbody></table></div><h4 id="NetworksofBrokers-Reliability">Reliability</h4><p>Networks of brokers do reliable store and forward of messages. If the source is durable, persistent messages on a queue or a durable topic subscription, a network will retain the durability guarantee. <br clear="none"> However networks cannot add durability when the source is non durable. Non durable topic subscriptions and temporary destinations (both queues and topics) are non durable by definition. When non durable<br clear="none"> sources are networked, in the event of a failure, inflight messages can be lost.</p><h4 id="NetworksofBrokers-Ordering">Ordering</h4><p>Total message ordering is not preserved with networks of brokers. Total ordering <a shape="rect" href="how-do-i-preserve-order-of-messages.html">works with a single consumer</a> but a networkBridge introduces a second consumer. In addition, network bridge consumers forward messages via producer.send(..), so they go from the head of the queue
  on the forwarding broker to the tail of the queue on the target. If single consumer moves between networked brokers, total order may be preserved if all messages always follow the consumer but this can be difficult to guarantee with large message backlogs.</p><h4 id="NetworksofBrokers-WhentouseandnotuseConduitsubscriptions">When to use and not use Conduit subscriptions</h4><p>ActiveMQ relies on information about active consumers (subscriptions) to pass messages around the network. A broker interprets a subscription from a remote (networked) broker in the same way as it would a subscription from a local client connection and routes a copy of any relevant message to each subscription. With Topic subscriptions and with more than one remote subscription, a remote broker would interpret each message copy as valid, so when it in turns routes the messages to its own local connections, duplicates would occur. Hence default conduit behavior consolidates all matching subscription information
  to prevent duplicates flowing around the network. With this default behaviour, N subscriptions on a remote broker look like a single subscription to the networked broker.</p><p>However - duplicate subscriptions is a useful feature to exploit if you are only using Queues. As the load balancing algorithm will attempt to share message load evenly, consumers across a network will equally share the message load only if the flag <code>conduitSubscriptions=false</code>. Here's an example. Suppose you have two brokers, A and B, that are connected to one another via a forwarding bridge. Connected to broker A, you have a consumer that subscribes to a queue called <code>Q.TEST</code>. Connected to broker B, you have two consumers that also subscribe to <code>Q.TEST</code>. All consumers have equal priority. Then you start a producer on broker A that writes 30 messages to <code>Q.TEST</code>. By default, (<code>conduitSubscriptions=true</code>), 15 messages will be sent to the consumer on brok
 er A and the resulting 15 messages will be sent to the two consumers on broker B. The message load has not been equally spread across all three consumers because, by default, broker A views the two subscriptions on broker B as one. If you had set <code>conduitSubscriptions</code> to&#160;<code>false</code>, then each of the three consumers would have been given 10 messages.</p><h4 id="NetworksofBrokers-Duplexnetworkconnectors">Duplex network connectors</h4><p>By default a network bridge forwards messages on demand in one direction over a single connection. When <code>duplex=true</code>, the same connection is used for a network bridge in the opposite directions, resulting in a bi-directional bridge. The network bridge configuration is propagated to the other broker so the duplex bridge is an exact replica or the original.</p><p><br clear="none"> Given two brokers, broker A and broker B, a duplex bridge on A to B is the same as a default bridge on A to B and a default bridge on B to 
 A.</p><p><br clear="none"> Note, if you want to configure more than one duplex network bridge between two brokers, to increase throughput or to partition topics and queues, you must provide unique names for each:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnectors&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnectors&gt;
         &lt;networkConnector name="SYSTEM1" duplex="true" uri="static:(tcp://10.x.x.x:61616)"&gt;
                 &lt;dynamicallyIncludedDestinations&gt;
                         &lt;topic physicalName="outgoing.System1" /&gt;
@@ -150,27 +151,27 @@
         &lt;/networkConnector&gt;
   &lt;/networkConnectors&gt;</pre>
 </div></div><h4 id="NetworksofBrokers-Conduitsubscriptionsandconsumerselectors">Conduit subscriptions and consumer selectors</h4><p>Conduit subscriptions ignore consumer selectors on the local broker and send all messages to the remote one. Selectors are then parsed on the remote brokers before messages are dispatched to consumers. This concept could create some problems with consuming on queues using selectors in a multi-broker network. Imagine a situation when you have a producing broker forwarding messages to two receiving brokers and each of these two brokers have a consumer with different selector. Since no selectors are evaluated on the producer broker side, you can end up with all messages going to only one of the brokers, so messages with certain property will not be consumed. If you need to support this use case, please turn off <code>conduitSubscription</code> feature.</p><h4 id="NetworksofBrokers-ConfigurationPitfalls">Configuration Pitfalls</h4><div class="confluence-inf
 ormation-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Networks do not work as expected (they cannot dynamically respond to new consumers) if the <code>advisorySupport</code> broker property is disabled. A fully statically configured network is the only option if <code>advisorySupport</code> is disabled. Read more about it in the following section.</p></div></div><h3 id="NetworksofBrokers-Networksofbrokersandadvisories">Networks of brokers and advisories</h3><p>Network of brokers relies heavily on advisory messages, as they are used under the hood to express interest in new consumers on the remote end. By default, when network connector starts it defines one consumer on the following topic <code>ActiveMQ.Advisory.Consumer.&gt;</code> (let's ignore temporary destination for the moment). In this way, when consumer connects (or disconnects) t
 o the remote broker, the local broker will get notified and will treat it as one more consumer it had to deal with.</p><p>This is all fine and well in small networks and environments whit small number of destinations and consumers. But as things starts to grow a default model (listen to everything, share everything) won't scale well. That's why there are many ways you can use to filter destinations that will be shared between brokers.</p><h4 id="NetworksofBrokers-Dynamicnetworks">Dynamic networks</h4><p>Let's start with dynamically configured networks. This means that we only want to send messages to the remote broker when there's a consumer there. If we want to limit this behavior only on certain destinations we will use <code>dynamicallyIncludedDestinations</code>, like</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnector uri="static:(tcp://host)"&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnector uri="static:(tcp://host)"&gt;
   &lt;dynamicallyIncludedDestinations&gt;
     &lt;queue physicalName="include.test.foo"/&gt;
     &lt;topic physicalName="include.test.bar"/&gt;
   &lt;/dynamicallyIncludedDestinations&gt;
 &lt;/networkConnector&gt;</pre>
 </div></div><p>In versions of ActiveMQ prior to 5.6, the broker would still use the same advisory filter and express interest in all consumers on the remote broker. The actual filtering will be done during message dispatch. This is suboptimal solution in huge networks as it creates a lot of "advisory" traffic and load on the brokers. Starting with version 5.6, the broker will automatically create an appropriate advisory filter and express interest only in dynamically included destinations. For our example it will be "<code>ActiveMQ.Advisory.Consumer.Queue.include.test.foo,ActiveMQ.Advisory.Consumer.Topic.include.test.bar</code>". This can dramatically improve behavior of the network in complex and high-load environments.</p><p>In older broker versions we can achieve the same thing with a slightly more complicated configuration. The actual advisory filter that controls in which consumers we are interested is defined with the <code>destinationFilter</code> connector property. Its defa
 ult value is "&gt;", which is concatenated to the <code>"ActiveMQ.Advisory.Consumer."</code> prefix. So to achieve the same thing, we would need to do the following:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnector uri="static:(tcp://host)" destinationFilter="Queue.include.test.foo,ActiveMQ.Advisory.Consumer.Topic.include.test.bar"&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnector uri="static:(tcp://host)" destinationFilter="Queue.include.test.foo,ActiveMQ.Advisory.Consumer.Topic.include.test.bar"&gt;
   &lt;dynamicallyIncludedDestinations&gt;
     &lt;queue physicalName="include.test.foo"/&gt;
     &lt;topic physicalName="include.test.bar"/&gt;
   &lt;/dynamicallyIncludedDestinations&gt;
 &lt;/networkConnector&gt;</pre>
 </div></div><p>Note that first destination does not have the prefix because it's already implied. It's a bit more complicated to set and maintain, but it will work. And if you're using 5.6 or newer version of the broker just including desired destinations with <code>dynamicallyIncludedDestinations</code> should suffice.</p><p>This also explains why dynamic networks do not work if you turn off advisory support on the brokers. The brokers in this case cannot dynamically respond to new consumers.</p><h4 id="NetworksofBrokers-Purestaticnetworks">Pure static networks</h4><p>If you wish to completely protect the broker from any influence of consumers on the remote broker, or if you wish to use the brokers as a simple proxy and forward all messages to the remote side no matter if there are consumers there or not, static networks are something you should consider.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnector uri="static:(tcp://host)" staticBridge="true"&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnector uri="static:(tcp://host)" staticBridge="true"&gt;
         &lt;staticallyIncludedDestinations&gt;
       		&lt;queue physicalName="always.include.queue"/&gt;
         &lt;/staticallyIncludedDestinations&gt;
 &lt;/networkConnector&gt;</pre>
 </div></div><p>The <code>staticBridge</code> parameter is available since version 5.6 and it means that the local broker will not subscribe to any advisory topics on the remote broker, meaning it is not interested in whether there are any consumers there. Additionally, you need to add a list of destinations to <code>staticallyIncludedDestinations</code>. This will have the same effect as having an additional consumer on the destinations so messages will be forwarded to the remote broker as well. As there is no <code>staticBridge</code> parameter in the earlier versions of ActiveMQ, you can trick the broker by setting <code>destinationFilter</code> to listen to an unused advisory topic, like</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnector uri="static:(tcp://host)" destinationFilter="NO_DESTINATION"&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnector uri="static:(tcp://host)" destinationFilter="NO_DESTINATION"&gt;
         &lt;staticallyIncludedDestinations&gt;
       		&lt;queue physicalName="always.include.queue"/&gt;
         &lt;/staticallyIncludedDestinations&gt;
@@ -237,7 +238,7 @@
 
 &lt;/beans&gt;</pre>
 </div></div><h3 id="NetworksofBrokers-ExampleConfigurationusingNetworkConnectorproperties">Example Configuration using NetworkConnector properties</h3><p>This part of an example configuration for a Broker</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnectors&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnectors&gt;
       &lt;networkConnector uri="static:(tcp://localhost:61617)"
          name="bridge"
          conduitSubscriptions="true"
@@ -258,7 +259,7 @@
     &lt;/networkConnectors&gt;
 </pre>
 </div></div><p>Note that at the moment <code>excludedDestinations</code> property doesn't affect <code>staticallyIncludedDestinations</code>.</p><p>It is possible to have more than one network connector between two brokers. Each network connector uses one underlying transport connection, so you may wish to do this to increase throughput, or have a more flexible configuration.</p><p><br clear="none"> For example, if using distributed queues, you may wish to have equivalent weighting to queue receivers across the network, but only when the receivers are active - e.g.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnectors&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;networkConnectors&gt;
       &lt;networkConnector uri="static:(tcp://localhost:61617)"
          name="queues_only"
          conduitSubscriptions="false"
@@ -270,7 +271,7 @@
     &lt;/networkConnectors&gt;
 </pre>
 </div></div><p><strong>N.B.</strong> You can only use <a shape="rect" href="wildcards.html">wildcards</a> in the <code>excludedDestinations</code> and <code>dynamicallyIncludedDestinations</code> properties.<br clear="none"> <strong>N.B.</strong> <strong>Do not</strong> change the name of the bridge or the name of the Broker if you are using durable topic subscribers across the network. Internally ActiveMQ uses the network name and broker name to build a unique but repeatable durable subscriber name for the network.</p><h3 id="NetworksofBrokers-StuckMessages(version5.6)">Stuck Messages (version 5.6)</h3><p>By default, it is not permissible for a message to be replayed back to the broker from which it came. This ensures that messages do not loop when duplex or by directional network connectors are configured. Occasionally it is desirable to allow replay for queues. Consider a scenario where a bidirectional bridge exists between a broker pair. Producers and Consumers get to randomly c
 hoose a broker using the failover transport. If one broker is restarted for maintenance, messages accumulated on that broker, that crossed the network bridge, will not be available to consumers till they reconnect to the broker. One solution to this problem is to force a client reconnect using <a shape="rect" class="external-link" href="http://activemq.apache.org/failover-transport-reference.html#FailoverTransportReference-BrokersideOptionsforFailover">rebalanceClusterClients</a>. Another, is to allow replay of messages back to the origin as there is no local consumer on that broker.<br clear="none"> There is a destination policy that allows this behavior for queues by configuring a <code>conditionalNetworkBridgeFilterFactory</code> with <code>replayWhenNoConsumers=true</code>. The <code>conditionalNetworkBridgeFilterFactory</code> provides an optional <code>replayDelay</code> based on the broker-in time.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeCont
 ent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">    &lt;destinationPolicy&gt;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">    &lt;destinationPolicy&gt;
       &lt;policyMap&gt;
         &lt;policyEntries&gt;
           &lt;policyEntry queue="TEST.&gt;" enableAudit="false"&gt;

Modified: websites/production/activemq/content/nio-transport-reference.html
==============================================================================
--- websites/production/activemq/content/nio-transport-reference.html (original)
+++ websites/production/activemq/content/nio-transport-reference.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/noclassdeffounderror-orgspringframeworkcoreioresource.html
==============================================================================
--- websites/production/activemq/content/noclassdeffounderror-orgspringframeworkcoreioresource.html (original)
+++ websites/production/activemq/content/noclassdeffounderror-orgspringframeworkcoreioresource.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/objectmessage.html
==============================================================================
--- websites/production/activemq/content/objectmessage.html (original)
+++ websites/production/activemq/content/objectmessage.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/old-osgi-integration.html
==============================================================================
--- websites/production/activemq/content/old-osgi-integration.html (original)
+++ websites/production/activemq/content/old-osgi-integration.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/openwire-version-2-specification.html
==============================================================================
--- websites/production/activemq/content/openwire-version-2-specification.html (original)
+++ websites/production/activemq/content/openwire-version-2-specification.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/osgi-integration.html
==============================================================================
--- websites/production/activemq/content/osgi-integration.html (original)
+++ websites/production/activemq/content/osgi-integration.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false; 

Modified: websites/production/activemq/content/outbound-communication.html
==============================================================================
--- websites/production/activemq/content/outbound-communication.html (original)
+++ websites/production/activemq/content/outbound-communication.html Wed Dec 13 03:36:26 2017
@@ -35,6 +35,7 @@
           <link href='http://activemq.apache.org/styles/highlighter/styles/shCore.css' rel='stylesheet' type='text/css' /> 
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushXml.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
@@ -92,7 +93,7 @@
 <p>In the <a shape="rect" href="outbound-communication.data/ejb-jar.xml?version=3&amp;modificationDate=1117021488000&amp;api=v2" data-linked-resource-id="3249" data-linked-resource-version="3" data-linked-resource-type="attachment" data-linked-resource-default-alias="ejb-jar.xml" data-nice-type="XML File" data-linked-resource-content-type="text/xml" data-linked-resource-container-id="35943" data-linked-resource-container-version="53">ejb-jar.xml</a> deployment descriptor, the <code>SenderEJB</code> is declared as follows:<br clear="none">
 <span class="confluence-anchor-link" id="OutboundCommunication-ejbSenderEJB"></span></p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>ejb-jar.xml &#8211; session bean declaration</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;"> 
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> 
 &lt;session&gt;
    ...
    &lt;ejb-name&gt;SenderEJB&lt;/ejb-name&gt;
@@ -119,7 +120,7 @@
 <p>The <code>jms/LogQueue</code> is the JNDI name the <code>SenderEJB</code> will use to lookup the <code>javax.jms.Queue</code> it will send messages to.  We use the <code>message-destination-link</code> element to refer to the <code>LoggingQueue</code> which is declared in the <code>assembly-descriptor</code> section of the <a shape="rect" href="outbound-communication.data/ejb-jar.xml?version=3&amp;modificationDate=1117021488000&amp;api=v2" data-linked-resource-id="3249" data-linked-resource-version="3" data-linked-resource-type="attachment" data-linked-resource-default-alias="ejb-jar.xml" data-nice-type="XML File" data-linked-resource-content-type="text/xml" data-linked-resource-container-id="35943" data-linked-resource-container-version="53">ejb-jar.xml</a> deployment descriptor as: <br clear="none">
 <span class="confluence-anchor-link" id="OutboundCommunication-ejbLoggingQueue"></span></p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>ejb-jar.xml &#8211; assembly descriptor section</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;"> 
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> 
 &lt;assembly-descriptor&gt;
    ...
    &lt;message-destination&gt;
@@ -136,7 +137,7 @@
 <p>The <code>resource-ref</code> element <a shape="rect" href="outbound-communication.html">shown above</a>, will be linked to the following element in the <a shape="rect" class="external-link" href="http://activemq.codehaus.org/checkout/activemq/modules/ra/src/rar/META-INF/ra.xml" rel="nofollow">ra.xml</a> file, which is contained within the <a shape="rect" href="jboss-integration.html">activemq-ra-1.2.rar</a> file:<br clear="none">
 <span class="confluence-anchor-link" id="OutboundCommunication-raQueueConnectionFactory"></span></p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>ra.xml &#8211; The QueueConnectionFactory</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
 &lt;outbound-resourceadapter&gt;
    ...
    &lt;connection-definition&gt;
@@ -154,7 +155,7 @@
 <p>The <code>message-destination</code> element <a shape="rect" href="outbound-communication.html">shown above</a>, will be linked to the following element in the <a shape="rect" class="external-link" href="http://activemq.codehaus.org/checkout/activemq/modules/ra/src/rar/META-INF/ra.xml" rel="nofollow">ra.xml</a> file:<br clear="none">
 <span class="confluence-anchor-link" id="OutboundCommunication-raQueue"></span></p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>ra.xml &#8211; The Queue</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
 &lt;adminobject&gt;
    &lt;adminobject-interface&gt;javax.jms.Queue&lt;/adminobject-interface&gt;
    &lt;adminobject-class&gt;org.activemq.message.ActiveMQQueue&lt;/adminobject-class&gt;
@@ -175,7 +176,7 @@
 <p>This first snippet configures the <code>QueueConnectionFactory</code>, <a shape="rect" href="outbound-communication.html">declared above</a>, and places it in JNDI at <code>activemq/QueueConnectionFactory</code>:<br clear="none">
 <span class="confluence-anchor-link" id="OutboundCommunication-dsQueueConnectionFactory"></span></p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>panacya-jms-ds.xml &#8211; The QueueConnectionFactory</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
 &lt;tx-connection-factory&gt;
    &lt;jndi-name&gt;activemq/QueueConnectionFactory&lt;/jndi-name&gt;
    &lt;xa-transaction/&gt;
@@ -189,7 +190,7 @@
 <p>This second snippet configures the <code>Queue</code>, <a shape="rect" href="outbound-communication.html">declared above</a>, and places it in JNDI at <code>activemq/queue/outbound</code>:<br clear="none">
 <span class="confluence-anchor-link" id="OutboundCommunication-dsQueue"></span></p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>panacya-jms-ds.xml &#8211; The Queue</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
 &lt;mbean code="org.jboss.resource.deployment.AdminObject" name="activemq.queue:name=outboundQueue"&gt;
    &lt;attribute name="JNDIName"&gt;activemq/queue/outbound&lt;/attribute&gt;
    &lt;depends optional-attribute-name="RARName"&gt;jboss.jca:service=RARDeployment,name='activemq-ra-1.2-SNAPSHOT.rar'&lt;/depends&gt;
@@ -207,7 +208,7 @@
 <p>This first snippet links the <code><a shape="rect" href="outbound-communication.html">jms/MyQueueConnectionFactory</a></code> JNDI name used by the <code>SenderEJB</code> to the resource name <code>queuefactoryref</code> which is local to the <a shape="rect" href="outbound-communication.data/jboss.xml?version=3&amp;modificationDate=1117021488000&amp;api=v2" data-linked-resource-id="3251" data-linked-resource-version="3" data-linked-resource-type="attachment" data-linked-resource-default-alias="jboss.xml" data-nice-type="XML File" data-linked-resource-content-type="text/xml" data-linked-resource-container-id="35943" data-linked-resource-container-version="53">jboss.xml</a> file: <br clear="none">
 <span class="confluence-anchor-link" id="OutboundCommunication-jbossQueuefactoryref"></span></p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>jboss.xml &#8211; The QueueConnectionFactory for the SenderEJB</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
 &lt;enterprise-beans&gt;
    &lt;session&gt;
       &lt;ejb-name&gt;SenderEJB&lt;/ejb-name&gt;
@@ -224,7 +225,7 @@
 <p>This second snippet links the local <code>queuefactoryref</code> name to the global JNDI name <code>java:/activemq/QueueConnectionFactory</code> which was <a shape="rect" href="outbound-communication.html">declared above</a>: <br clear="none">
 <span class="confluence-anchor-link" id="OutboundCommunication-jbossQueueConnectionFactory"></span></p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>jboss.xml &#8211; Linking queuefactoryref to the global JNDI namespace</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
 &lt;resource-managers&gt;
    &lt;resource-manager&gt;
       &lt;res-name&gt;queuefactoryref&lt;/res-name&gt;
@@ -238,7 +239,7 @@
 <p>This third snippet links the <code>LoggingQueue</code>, which was <a shape="rect" href="outbound-communication.html">declared</a> in the <code>assembly-descriptor</code> section of the <a shape="rect" href="outbound-communication.data/ejb-jar.xml?version=3&amp;modificationDate=1117021488000&amp;api=v2" data-linked-resource-id="3249" data-linked-resource-version="3" data-linked-resource-type="attachment" data-linked-resource-default-alias="ejb-jar.xml" data-nice-type="XML File" data-linked-resource-content-type="text/xml" data-linked-resource-container-id="35943" data-linked-resource-container-version="53">ejb-jar.xml</a>, to the global JNDI name <code>activemq/queue/outbound</code> which was <a shape="rect" href="outbound-communication.html">declared above</a>: <br clear="none">
 <span class="confluence-anchor-link" id="OutboundCommunication-jbossQueue"></span></p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>jboss.xml &#8211; Linking LoggingQueue to the global JNDI namespace</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
 &lt;assembly-descriptor&gt;
    &lt;message-destination&gt;
       &lt;message-destination-name&gt;LoggingQueue&lt;/message-destination-name&gt;

Modified: websites/production/activemq/content/periodically-checking-disk-limits.html
==============================================================================
--- websites/production/activemq/content/periodically-checking-disk-limits.html (original)
+++ websites/production/activemq/content/periodically-checking-disk-limits.html Wed Dec 13 03:36:26 2017
@@ -36,6 +36,7 @@
       <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> 
       <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> 
               <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> 
+              <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushBash.js' type='text/javascript'></script> 
          
       <script type="text/javascript"> 
         SyntaxHighlighter.defaults['toolbar'] = false;