activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r867724 - in /websites/production/activemq/content: cache/main.pageCache networks-of-brokers.html
Date Fri, 28 Jun 2013 11:21:31 GMT
Author: buildbot
Date: Fri Jun 28 11:21:31 2013
New Revision: 867724

Log:
Production update by buildbot for activemq

Modified:
    websites/production/activemq/content/cache/main.pageCache
    websites/production/activemq/content/networks-of-brokers.html

Modified: websites/production/activemq/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

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 Fri Jun 28 11:21:31 2013
@@ -50,8 +50,8 @@
       <div>
 
 <!-- Banner -->
-
-	<div id="asf_logo">
+<p>
+	</p><div id="asf_logo">
 	<div id="activemq_logo">
             <a shape="rect" style="float:left; width:280px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:10px; margin-left:100px;" href="http://activemq.apache.org" title="The most popular and powerful open source Message Broker">ActiveMQ</a> &#8482;
             <a shape="rect" style="float:right; width:210px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:15px; margin-right:10px;" href="http://www.apache.org" title="The Apache Software Foundation">ASF</a>
@@ -96,27 +96,27 @@
 
 <p>Here is an example of using the <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/resources/org/apache/activemq/usecases/receiver.xml?view=markup">fixed list of URIs</a></p>
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml">
-<span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?&gt;</span>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 
-<span class="code-tag">&lt;beans xmlns=<span class="code-quote">"http://activemq.org/config/1.0"</span>&gt;</span>
+&lt;beans xmlns="http://activemq.org/config/1.0"&gt;
 
-  <span class="code-tag">&lt;broker brokerName=<span class="code-quote">"receiver"</span> persistent=<span class="code-quote">"false"</span> useJmx=<span class="code-quote">"false"</span>&gt;</span>  
-    <span class="code-tag">&lt;networkConnectors&gt;</span>
-      <span class="code-tag">&lt;networkConnector uri=<span class="code-quote">"static:(tcp://localhost:62001)"</span>/&gt;</span>
-    <span class="code-tag">&lt;/networkConnectors&gt;</span>
-
-    <span class="code-tag">&lt;persistenceAdapter&gt;</span>
-      <span class="code-tag">&lt;memoryPersistenceAdapter/&gt;</span>
-    <span class="code-tag">&lt;/persistenceAdapter&gt;</span>
-
-   <span class="code-tag">&lt;transportConnectors&gt;</span>
-      <span class="code-tag">&lt;transportConnector uri=<span class="code-quote">"tcp://localhost:62002"</span>/&gt;</span>
-    <span class="code-tag">&lt;/transportConnectors&gt;</span>
-  <span class="code-tag">&lt;/broker&gt;</span>
+  &lt;broker brokerName="receiver" persistent="false" useJmx="false"&gt;  
+    &lt;networkConnectors&gt;
+      &lt;networkConnector uri="static:(tcp://localhost:62001)"/&gt;
+    &lt;/networkConnectors&gt;
+
+    &lt;persistenceAdapter&gt;
+      &lt;memoryPersistenceAdapter/&gt;
+    &lt;/persistenceAdapter&gt;
+
+   &lt;transportConnectors&gt;
+      &lt;transportConnector uri="tcp://localhost:62002"/&gt;
+    &lt;/transportConnectors&gt;
+  &lt;/broker&gt;
 
-<span class="code-tag">&lt;/beans&gt;</span>
-</pre>
+&lt;/beans&gt;
+]]></script>
 </div></div>
 
 <p>ActiveMQ also supports other transports than tcp to be used for the network connector such as http.</p>
@@ -125,27 +125,27 @@
 
 <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" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml">
-<span class="code-tag">&lt;?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?&gt;</span>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 
-<span class="code-tag">&lt;beans xmlns=<span class="code-quote">"http://activemq.org/config/1.0"</span>&gt;</span>
+&lt;beans xmlns="http://activemq.org/config/1.0"&gt;
 
-  <span class="code-tag">&lt;broker name=<span class="code-quote">"sender"</span> persistent=<span class="code-quote">"false"</span> useJmx=<span class="code-quote">"false"</span>&gt;</span>  
-    <span class="code-tag">&lt;networkConnectors&gt;</span>
-      <span class="code-tag">&lt;networkConnector uri=<span class="code-quote">"multicast://default"</span>/&gt;</span>
-    <span class="code-tag">&lt;/networkConnectors&gt;</span>
-
-    <span class="code-tag">&lt;persistenceAdapter&gt;</span>
-      <span class="code-tag">&lt;memoryPersistenceAdapter/&gt;</span>
-    <span class="code-tag">&lt;/persistenceAdapter&gt;</span>
-
-  <span class="code-tag">&lt;transportConnectors&gt;</span>
-      <span class="code-tag">&lt;transportConnector uri=<span class="code-quote">"tcp://localhost:0"</span> discoveryUri=<span class="code-quote">"multicast://default"</span>/&gt;</span>
-    <span class="code-tag">&lt;/transportConnectors&gt;</span>
-  <span class="code-tag">&lt;/broker&gt;</span>
+  &lt;broker name="sender" persistent="false" useJmx="false"&gt;  
+    &lt;networkConnectors&gt;
+      &lt;networkConnector uri="multicast://default"/&gt;
+    &lt;/networkConnectors&gt;
+
+    &lt;persistenceAdapter&gt;
+      &lt;memoryPersistenceAdapter/&gt;
+    &lt;/persistenceAdapter&gt;
+
+  &lt;transportConnectors&gt;
+      &lt;transportConnector uri="tcp://localhost:0" discoveryUri="multicast://default"/&gt;
+    &lt;/transportConnectors&gt;
+  &lt;/broker&gt;
 
-<span class="code-tag">&lt;/beans&gt;</span>
-</pre>
+&lt;/beans&gt;
+]]></script>
 </div></div>
 
 <h2><a shape="rect" name="NetworksofBrokers-Startingnetworkconnectors"></a>Starting network connectors</h2>
@@ -155,11 +155,11 @@
 
 <p>With <tt>static:</tt> discovery you can hard code the list of broker URLs. A network connector will be created for each one.</p>
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml">
-    <span class="code-tag">&lt;networkConnectors&gt;</span>
-      <span class="code-tag">&lt;networkConnector uri=<span class="code-quote">"static:(tcp://host1:61616,tcp://host2:61616,tcp://..)"</span>/&gt;</span>
-    <span class="code-tag">&lt;/networkConnectors&gt;</span>
-</pre>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+    &lt;networkConnectors&gt;
+      &lt;networkConnector uri="static:(tcp://host1:61616,tcp://host2:61616,tcp://..)"/&gt;
+    &lt;/networkConnectors&gt;
+]]></script>
 </div></div>
 
 <p>There are some useful properties you can set on a static network connector for retries:</p>
@@ -170,9 +170,9 @@
 
 <p>e.g.</p>
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-java">
-uri=<span class="code-quote">"<span class="code-keyword">static</span>:(tcp:<span class="code-comment">//host1:61616,tcp://host2:61616)?maxReconnectDelay=5000&amp;useExponentialBackOff=<span class="code-keyword">false</span>"</span></span>
-</pre>
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+uri="static:(tcp://host1:61616,tcp://host2:61616)?maxReconnectDelay=5000&amp;useExponentialBackOff=false"
+]]></script>
 </div></div>
 
 <h2><a shape="rect" name="NetworksofBrokers-MasterSlaveDiscovery"></a>MasterSlave Discovery</h2>
@@ -180,11 +180,11 @@ uri=<span class="code-quote">"<span clas
 <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 <tt>failover:</tt> 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 <tt>masterslave:</tt> transport prefix:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml">
-    <span class="code-tag">&lt;networkConnectors&gt;</span>
-      <span class="code-tag">&lt;networkConnector uri=<span class="code-quote">"masterslave:(tcp://host1:61616,tcp://host2:61616,tcp://..)"</span>/&gt;</span>
-    <span class="code-tag">&lt;/networkConnectors&gt;</span>
-</pre>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+    &lt;networkConnectors&gt;
+      &lt;networkConnector uri="masterslave:(tcp://host1:61616,tcp://host2:61616,tcp://..)"/&gt;
+    &lt;/networkConnectors&gt;
+]]></script>
 </div></div>
 
 <p>The URIs are listed in order for: MASTER,SLAVE1,SLAVE2...SLAVE<img align="middle" class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/thumbs_down.gif" height="19" width="19" alt="" border="0"></p>
@@ -194,7 +194,7 @@ uri=<span class="code-quote">"<span clas
 <h2><a shape="rect" name="NetworksofBrokers-NetworkConnectorProperties"></a>NetworkConnector Properties</h2>
 
 <div class="table-wrap">
-<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> property </th><th colspan="1" rowspan="1" class="confluenceTh"> default </th><th colspan="1" rowspan="1" class="confluenceTh"> description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> name </td><td colspan="1" rowspan="1" class="confluenceTd"> bridge </td><td colspan="1" rowspan="1" class="confluenceTd"> name of the network - for more than one network connector between the same two brokers - use different names </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> dynamicOnly </td><td colspan="1" rowspan="1" class="confluenceTd"> false </td><td colspan="1" rowspan="1" class="confluenceTd"> if true, only activate a networked durable subscription when a corresponding durable subscription reactivates, by default they are activated on startup. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> decreaseNetworkConsumerPriority </td><td colspan="1" r
 owspan="1" class="confluenceTd"> false </td><td colspan="1" rowspan="1" class="confluenceTd"> 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 </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> networkTTL </td><td colspan="1" rowspan="1" class="confluenceTd"> 1 </td><td colspan="1" rowspan="1" class="confluenceTd"> the number of brokers in the network that  messages and subscriptions can pass through </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> conduitSubscriptions </td><td colspan="1" rowspan="1" class="confluenceTd"> true </td><td colspan="1" rowspan="1" class="confluenceTd"> multiple consumers subscribing to the same destination are treated as one consumer by the network </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> excludedDestinatio
 ns </td><td colspan="1" rowspan="1" class="confluenceTd"> empty </td><td colspan="1" rowspan="1" class="confluenceTd"> destinations matching this list won't be forwarded across the network </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> dynamicallyIncludedDestinations </td><td colspan="1" rowspan="1" class="confluenceTd"> empty </td><td colspan="1" rowspan="1" class="confluenceTd"> destinations that match this list <b>will</b> be forwarded across the network <b>n.b.</b> an empty list means all destinations not in the exluded list will be forwarded </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> staticallyIncludedDestinations </td><td colspan="1" rowspan="1" class="confluenceTd"> empty </td><td colspan="1" rowspan="1" class="confluenceTd"> destinations that match will always be passed across the network - even if no consumers have ever registered an interest </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> duplex </td><td colspan
 ="1" rowspan="1" class="confluenceTd"> false </td><td colspan="1" rowspan="1" class="confluenceTd"> if true, a network connection will be used to both produce <b><em>AND</em></b> Consume messages. This is useful for hub and spoke scenarios when the hub is behind a firewall etc. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">prefetchSize </td><td colspan="1" rowspan="1" class="confluenceTd">1000</td><td colspan="1" rowspan="1" class="confluenceTd"> Sets the <a shape="rect" href="what-is-the-prefetch-limit-for.html" title="What is the prefetch limit for">prefetch size</a> on the network connector's consumer. It must be &gt; 0 because network consumers do not poll for messages</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">suppressDuplicateQueueSubscriptions</td><td colspan="1" rowspan="1" class="confluenceTd">false</td><td colspan="1" rowspan="1" class="confluenceTd"> (from 5.3) if true, duplicate subscriptions in the network that arise from netw
 ork 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 bridges 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. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> bridgeTempDestinations </td><td colspan="1" rowspan="1" class="confluenceTd"> true </td><td colspan="1" rowspan="1" class="confluenceTd"> Whether to broadcast advisory messages for created temp destinations in the network of brokers or not. Temp destin
 ations 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">
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> property </th><th colspan="1" rowspan="1" class="confluenceTh"> default </th><th colspan="1" rowspan="1" class="confluenceTh"> description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> name </td><td colspan="1" rowspan="1" class="confluenceTd"> bridge </td><td colspan="1" rowspan="1" class="confluenceTd"> name of the network - for more than one network connector between the same two brokers - use different names </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> dynamicOnly </td><td colspan="1" rowspan="1" class="confluenceTd"> false </td><td colspan="1" rowspan="1" class="confluenceTd"> if true, only activate a networked durable subscription when a corresponding durable subscription reactivates, by default they are activated on startup. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> decreaseNetworkConsumerPriority </td><td colspan="1" r
 owspan="1" class="confluenceTd"> false </td><td colspan="1" rowspan="1" class="confluenceTd"> 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 </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> networkTTL </td><td colspan="1" rowspan="1" class="confluenceTd"> 1 </td><td colspan="1" rowspan="1" class="confluenceTd"> the number of brokers in the network that  messages and subscriptions can pass through (sets both message&amp;consumer -TTL) </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> messageTTL </td><td colspan="1" rowspan="1" class="confluenceTd"> 1 </td><td colspan="1" rowspan="1" class="confluenceTd"> (version 5.9) the number of brokers in the network that  messages can pass through </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> consumer
 TTL </td><td colspan="1" rowspan="1" class="confluenceTd"> 1 </td><td colspan="1" rowspan="1" class="confluenceTd"> (version 5.9) the number of brokers in the network that subscriptions can pass through (keep to 1 in a mesh) </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> conduitSubscriptions </td><td colspan="1" rowspan="1" class="confluenceTd"> true </td><td colspan="1" rowspan="1" class="confluenceTd"> multiple consumers subscribing to the same destination are treated as one consumer by the network </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> excludedDestinations </td><td colspan="1" rowspan="1" class="confluenceTd"> empty </td><td colspan="1" rowspan="1" class="confluenceTd"> destinations matching this list won't be forwarded across the network </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> dynamicallyIncludedDestinations </td><td colspan="1" rowspan="1" class="confluenceTd"> empty </td><td colspan="1" rowspan="1" class
 ="confluenceTd"> destinations that match this list <b>will</b> be forwarded across the network <b>n.b.</b> an empty list means all destinations not in the exluded list will be forwarded </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> staticallyIncludedDestinations </td><td colspan="1" rowspan="1" class="confluenceTd"> empty </td><td colspan="1" rowspan="1" class="confluenceTd"> destinations that match will always be passed across the network - even if no consumers have ever registered an interest </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> duplex </td><td colspan="1" rowspan="1" class="confluenceTd"> false </td><td colspan="1" rowspan="1" class="confluenceTd"> if true, a network connection will be used to both produce <b><em>AND</em></b> Consume messages. This is useful for hub and spoke scenarios when the hub is behind a firewall etc. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">prefetchSize </td><td colspan="1" rowspan=
 "1" class="confluenceTd">1000</td><td colspan="1" rowspan="1" class="confluenceTd"> Sets the <a shape="rect" href="what-is-the-prefetch-limit-for.html" title="What is the prefetch limit for">prefetch size</a> on the network connector's consumer. It must be &gt; 0 because network consumers do not poll for messages</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">suppressDuplicateQueueSubscriptions</td><td colspan="1" rowspan="1" class="confluenceTd">false</td><td colspan="1" rowspan="1" class="confluenceTd"> (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 bridges 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. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> bridgeTempDestinations </td><td colspan="1" rowspan="1" class="confluenceTd"> true </td><td colspan="1" rowspan="1" class="confluenceTd"> 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 reque
 st-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.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> alwaysSyncSend </td><td colspan="1" rowspan="1" class="confluenceTd"> false </td><td colspan="1" rowspan="1" class="confluenceTd"> (version 5.6) When true, non persistent messages are sent to the remote broker using request/reply in place of a oneway. This setting treats both persistent and non-persistent messages the same.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> staticBridge </td><td colspan="1" rowspan="1" class="confluenceTd"> false </td><td colspan="1" rowspan="1" class="confluenceTd"> (version 5.6) If set to true, broker will not dynamically respond to n
 ew consumers. It will only use <tt>staticallyIncludedDestinations</tt> to create demand subscriptions</td></tr></tbody></table>
 </div>
 
@@ -214,21 +214,20 @@ sources are networked, in the event of a
 <h4><a shape="rect" name="NetworksofBrokers-Duplexnetworkconnectors"></a>Duplex network connectors</h4>
 <p>By default a network bridge forwards messages on demand in one direction over a single connection. When dupex=true, the same connection is used for a network bridge in the opposite directions, resulting in a by directional bridge. The network bridge configuration is propagated to the other broker so the duplex bridge is an exact replica or the original.<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.<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: eg:</p>
-<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml">
-<span class="code-tag">&lt;networkConnectors&gt;</span>
-        <span class="code-tag">&lt;networkConnector name=<span class="code-quote">"SYSTEM1"</span> duplex=<span class="code-quote">"true"</span> uri=<span class="code-quote">"static:(tcp://10.x.x.x:61616)"</span>&gt;</span>
-                <span class="code-tag">&lt;dynamicallyIncludedDestinations&gt;</span>
-                        <span class="code-tag">&lt;topic physicalName=<span class="code-quote">"outgoing.System1"</span> /&gt;</span>
-                <span class="code-tag">&lt;/dynamicallyIncludedDestinations&gt;</span>
-        <span class="code-tag">&lt;/networkConnector&gt;</span>
-        <span class="code-tag">&lt;networkConnector name=<span class="code-quote">"SYSTEM2"</span> duplex=<span class="code-quote">"true"</span> uri=<span class="code-quote">"static:(tcp://10.x.x.x:61616)"</span>&gt;</span>
-                <span class="code-tag">&lt;dynamicallyIncludedDestinations&gt;</span>
-                        <span class="code-tag">&lt;topic physicalName=<span class="code-quote">"outgoing.System2"</span>/&gt;</span>
-                <span class="code-tag">&lt;/dynamicallyIncludedDestinations&gt;</span>
-        <span class="code-tag">&lt;/networkConnector&gt;</span>
-  <span class="code-tag">&lt;/networkConnectors&gt;</span></pre>
+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: eg:</p><div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+&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;
+                &lt;/dynamicallyIncludedDestinations&gt;
+        &lt;/networkConnector&gt;
+        &lt;networkConnector name="SYSTEM2" duplex="true" uri="static:(tcp://10.x.x.x:61616)"&gt;
+                &lt;dynamicallyIncludedDestinations&gt;
+                        &lt;topic physicalName="outgoing.System2"/&gt;
+                &lt;/dynamicallyIncludedDestinations&gt;
+        &lt;/networkConnector&gt;
+  &lt;/networkConnectors&gt;]]></script>
 </div></div>
 
 
@@ -251,12 +250,12 @@ Note, if you want to configure more than
 <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 <tt>dynamicallyIncludedDestinations</tt>, like </p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml"><span class="code-tag">&lt;networkConnector uri=<span class="code-quote">"static:(tcp://host)"</span>&gt;</span>
-  <span class="code-tag">&lt;dynamicallyIncludedDestinations&gt;</span>
-    <span class="code-tag">&lt;queue physicalName=<span class="code-quote">"include.test.foo"</span>/&gt;</span>
-    <span class="code-tag">&lt;topic physicalName=<span class="code-quote">"include.test.bar"</span>/&gt;</span>
-  <span class="code-tag">&lt;/dynamicallyIncludedDestinations&gt;</span>
-<span class="code-tag">&lt;/networkConnector&gt;</span></pre>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&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;]]></script>
 </div></div>
 
 <p>In earlier versions of ActiveMQ, 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 <tt>ActiveMQ.Advisory.Consumer.Queue.include.test.foo,ActiveMQ.Advisory.Consumer.Topic.include.test.bar</tt>. This can dramatically improve behavior of the network in complex and high-load environments.</p>
@@ -264,12 +263,12 @@ Note, if you want to configure more than
 <p>So what's to be done in older versions of the broker? Luckily, we can achieve the same thing with a bit more complicated configuration. The actual advisory filter that controls in which consumers we are interested is defined with the <tt>destinationFilter</tt> connector property. It's default value is <tt>&gt;</tt>, which is concatenated to the <tt>ActiveMQ.Advisory.Consumer.</tt> prefix. So to achieve the same thing we would need to do the following</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml"><span class="code-tag">&lt;networkConnector uri=<span class="code-quote">"static:(tcp://host)"</span> destinationFilter=<span class="code-quote">"Queue.include.test.foo,ActiveMQ.Advisory.Consumer.Topic.include.test.bar"</span>&gt;</span>
-  <span class="code-tag">&lt;dynamicallyIncludedDestinations&gt;</span>
-    <span class="code-tag">&lt;queue physicalName=<span class="code-quote">"include.test.foo"</span>/&gt;</span>
-    <span class="code-tag">&lt;topic physicalName=<span class="code-quote">"include.test.bar"</span>/&gt;</span>
-  <span class="code-tag">&lt;/dynamicallyIncludedDestinations&gt;</span>
-<span class="code-tag">&lt;/networkConnector&gt;</span></pre>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&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;]]></script>
 </div></div>
 
 <p>Note that first destination doesn't 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 <tt>dynamicallyIncludedDestinations</tt> should suffice.</p>
@@ -281,21 +280,21 @@ Note, if you want to configure more than
 <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" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml"><span class="code-tag">&lt;networkConnector uri=<span class="code-quote">"static:(tcp://host)"</span> staticBridge=<span class="code-quote">"true"</span>&gt;</span>
-        <span class="code-tag">&lt;staticallyIncludedDestinations&gt;</span>
-      		<span class="code-tag">&lt;queue physicalName=<span class="code-quote">"always.include.queue"</span>/&gt;</span>
-        <span class="code-tag">&lt;/staticallyIncludedDestinations&gt;</span>
-<span class="code-tag">&lt;/networkConnector&gt;</span></pre>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&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;]]></script>
 </div></div>
 
 <p>The <tt>staticBridge</tt> parameter is available since version 5.6 and it means that broker will not subscribe to any advisory topic on the remote broker, meaning it is not interested in any consumers there. Additionally, you need to add a list of destinations to <tt>staticallyIncludedDestinations</tt>. 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's no <tt>staticBridge</tt> parameter in the earlier versions of ActiveMQ, you can trick the broker by setting <tt>destinationFilter</tt> to listen to an unused advisory topic, like</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml"><span class="code-tag">&lt;networkConnector uri=<span class="code-quote">"static:(tcp://host)"</span> destinationFilter=<span class="code-quote">"NO_DESTINATION"</span>&gt;</span>
-        <span class="code-tag">&lt;staticallyIncludedDestinations&gt;</span>
-      		<span class="code-tag">&lt;queue physicalName=<span class="code-quote">"always.include.queue"</span>/&gt;</span>
-        <span class="code-tag">&lt;/staticallyIncludedDestinations&gt;</span>
-<span class="code-tag">&lt;/networkConnector&gt;</span></pre>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;networkConnector uri="static:(tcp://host)" destinationFilter="NO_DESTINATION"&gt;
+        &lt;staticallyIncludedDestinations&gt;
+      		&lt;queue physicalName="always.include.queue"/&gt;
+        &lt;/staticallyIncludedDestinations&gt;
+&lt;/networkConnector&gt;]]></script>
 </div></div>
 
 <p>If configured like this, broker will try to listen for new consumers on <tt>ActiveMQ.Advisory.Consumer.NO_DESTINATION</tt>, which will never have messages so it will be protected from information on remote broker consumers.</p>
@@ -305,43 +304,43 @@ Note, if you want to configure more than
 
 <p>This part of an example configuration for a Broker</p>
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml">
-<span class="code-tag">&lt;networkConnectors&gt;</span>
-      &lt;networkConnector uri=<span class="code-quote">"static:(tcp://localhost:61617)"</span>
-         name=<span class="code-quote">"bridge"</span>
-         conduitSubscriptions=<span class="code-quote">"true"</span>
-         decreaseNetworkConsumerPriority=<span class="code-quote">"false"</span>&gt;
-      	<span class="code-tag">&lt;dynamicallyIncludedDestinations&gt;</span>
-      		<span class="code-tag">&lt;queue physicalName=<span class="code-quote">"include.test.foo"</span>/&gt;</span>
-      		<span class="code-tag">&lt;topic physicalName=<span class="code-quote">"include.test.bar"</span>/&gt;</span>
-      	<span class="code-tag">&lt;/dynamicallyIncludedDestinations&gt;</span>
-      	<span class="code-tag">&lt;excludedDestinations&gt;</span>
-      		<span class="code-tag">&lt;queue physicalName=<span class="code-quote">"exclude.test.foo"</span>/&gt;</span>
-      		<span class="code-tag">&lt;topic physicalName=<span class="code-quote">"exclude.test.bar"</span>/&gt;</span>
-      	<span class="code-tag">&lt;/excludedDestinations&gt;</span>
-        <span class="code-tag">&lt;staticallyIncludedDestinations&gt;</span>
-      		<span class="code-tag">&lt;queue physicalName=<span class="code-quote">"always.include.queue"</span>/&gt;</span>
-      		<span class="code-tag">&lt;topic physicalName=<span class="code-quote">"always.include.topic"</span>/&gt;</span>
-      	<span class="code-tag">&lt;/staticallyIncludedDestinations&gt;</span>
-      <span class="code-tag">&lt;/networkConnector&gt;</span>
-    <span class="code-tag">&lt;/networkConnectors&gt;</span>
-</pre>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+&lt;networkConnectors&gt;
+      &lt;networkConnector uri="static:(tcp://localhost:61617)"
+         name="bridge"
+         conduitSubscriptions="true"
+         decreaseNetworkConsumerPriority="false"&gt;
+      	&lt;dynamicallyIncludedDestinations&gt;
+      		&lt;queue physicalName="include.test.foo"/&gt;
+      		&lt;topic physicalName="include.test.bar"/&gt;
+      	&lt;/dynamicallyIncludedDestinations&gt;
+      	&lt;excludedDestinations&gt;
+      		&lt;queue physicalName="exclude.test.foo"/&gt;
+      		&lt;topic physicalName="exclude.test.bar"/&gt;
+      	&lt;/excludedDestinations&gt;
+        &lt;staticallyIncludedDestinations&gt;
+      		&lt;queue physicalName="always.include.queue"/&gt;
+      		&lt;topic physicalName="always.include.topic"/&gt;
+      	&lt;/staticallyIncludedDestinations&gt;
+      &lt;/networkConnector&gt;
+    &lt;/networkConnectors&gt;
+]]></script>
 </div></div>
 <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.<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" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml">
-<span class="code-tag">&lt;networkConnectors&gt;</span>
-      &lt;networkConnector uri=<span class="code-quote">"static:(tcp://localhost:61617)"</span>
-         name=<span class="code-quote">"queues_only"</span>
-         conduitSubscriptions=<span class="code-quote">"false"</span>
-         decreaseNetworkConsumerPriority=<span class="code-quote">"false"</span>&gt;
-      	<span class="code-tag">&lt;excludedDestinations&gt;</span>
-      		<span class="code-tag">&lt;topic physicalName=<span class="code-quote">"&gt;</span>"</span>/&gt;
-      	<span class="code-tag">&lt;/excludedDestinations&gt;</span>
-      <span class="code-tag">&lt;/networkConnector&gt;</span>
-    <span class="code-tag">&lt;/networkConnectors&gt;</span>
-</pre>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+&lt;networkConnectors&gt;
+      &lt;networkConnector uri="static:(tcp://localhost:61617)"
+         name="queues_only"
+         conduitSubscriptions="false"
+         decreaseNetworkConsumerPriority="false"&gt;
+      	&lt;excludedDestinations&gt;
+      		&lt;topic physicalName="&gt;"/&gt;
+      	&lt;/excludedDestinations&gt;
+      &lt;/networkConnector&gt;
+    &lt;/networkConnectors&gt;
+]]></script>
 </div></div>
 <p><b>N.B.</b> You can only use <a shape="rect" href="wildcards.html" title="Wildcards">wildcards</a> in the excludedDestinations and dynamicallyIncludedDestinations properties.<br clear="none">
 <b>N.B.</b> <b>Do not</b> change the name of the bridge or the name of the Broker if you are using durable topic subscribers across the network. Internally ActiceMQ uses the network name and broker name to build a unique but repeatable durable subscriber name for the network.</p>
@@ -351,18 +350,18 @@ For example, if using distributed queues
 There is a destination policy that allows this behavior for queues by configuring a conditionalNetworkBridgeFilterFactory with replayWhenNoConsumers=true. The conditionalNetworkBridgeFilterFactory provides an optional replayDelay based on the broker-in time.</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-xml">    <span class="code-tag">&lt;destinationPolicy&gt;</span>
-      <span class="code-tag">&lt;policyMap&gt;</span>
-        <span class="code-tag">&lt;policyEntries&gt;</span>
-          <span class="code-tag">&lt;policyEntry queue=<span class="code-quote">"TEST.&gt;</span>"</span> enableAudit=<span class="code-quote">"false"</span>&gt;
-            <span class="code-tag">&lt;conditionalNetworkBridgeFilterFactory replayWhenNoConsumers=<span class="code-quote">"true"</span>/&gt;</span>
-          <span class="code-tag">&lt;/policyEntry&gt;</span>
-        <span class="code-tag">&lt;/policyEntries&gt;</span>
-      <span class="code-tag">&lt;/policyMap&gt;</span>
-    <span class="code-tag">&lt;/destinationPolicy&gt;</span></pre>
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[    &lt;destinationPolicy&gt;
+      &lt;policyMap&gt;
+        &lt;policyEntries&gt;
+          &lt;policyEntry queue="TEST.&gt;" enableAudit="false"&gt;
+            &lt;conditionalNetworkBridgeFilterFactory replayWhenNoConsumers="true"/&gt;
+          &lt;/policyEntry&gt;
+        &lt;/policyEntries&gt;
+      &lt;/policyMap&gt;
+    &lt;/destinationPolicy&gt;]]></script>
 </div></div> 
 
-<p><b>N.B.:</b> When using replayWhenNoConsumers=true it is necessary to also disable the cursors duplicate detection using <b>enableAudit=false</b> as the cursor could mark the replayed messages as duplicates (depending on the time window between playing and replaying these messages over the network bridge). The problem is fully explained in this <a shape="rect" class="external-link" href="http://tmielke.blogspot.de/2012/03/i-have-messages-on-queue-but-they-dont.html" rel="nofollow">blog post</a>. </p>
+<p><b>N.B.:</b> When using replayWhenNoConsumers=true for versions &lt; 5.9, it is necessary to also disable the cursors duplicate detection using <b>enableAudit=false</b> as the cursor could mark the replayed messages as duplicates (depending on the time window between playing and replaying these messages over the network bridge). The problem is fully explained in this <a shape="rect" class="external-link" href="http://tmielke.blogspot.de/2012/03/i-have-messages-on-queue-but-they-dont.html" rel="nofollow">blog post</a>. </p>
 
 <h4><a shape="rect" name="NetworksofBrokers-Throttlinganetworkconsumer"></a>Throttling a network consumer</h4>
 <p>The conditionalNetworkBridgeFilterFactory factory allows a rate limit to be specified for a destination, such that network consumer can be throttled. Prefetch for a network consumer is largely negated by the fact that a network consumer relays a message typically acks very quickly so even with a low prefetch and decreased priority a network consumer can starve a modestly quick local consumer. Throttling provides a remedy for this.</p>
@@ -371,21 +370,21 @@ There is a destination policy that allow
 
 <p>If you run the following commands in separate shells you'll have 2 brokers auto-discovering themselves and 2 clients using fixed-URLs</p>
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-java">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 maven -o server -Dconfig=xbean:file:src/test/resources/org/apache/activemq/usecases/receiver.xml
 maven -o server -Dconfig=xbean:file:src/test/resources/org/apache/activemq/usecases/sender.xml
-maven -o consumer -Durl=tcp:<span class="code-comment">//localhost:62002
-</span>maven -o producer -Durl=tcp:<span class="code-comment">//localhost:62001</span>
-</pre>
+maven -o consumer -Durl=tcp://localhost:62002
+maven -o producer -Durl=tcp://localhost:62001
+]]></script>
 </div></div>
 <p>Or to try the same thing again using Zeroconf discovery you could try this</p>
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-java">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 maven -o server -Dconfig=src/test/org/activemq/usecases/receiver-zeroconf.xml
 maven -o server -Dconfig=src/test/org/activemq/usecases/sender-zeroconf.xml
-maven -o consumer -Durl=tcp:<span class="code-comment">//localhost:62002
-</span>maven -o producer -Durl=tcp:<span class="code-comment">//localhost:62001</span>
-</pre>
+maven -o consumer -Durl=tcp://localhost:62002
+maven -o producer -Durl=tcp://localhost:62001
+]]></script>
 </div></div>
           </div>
         </td>
@@ -400,8 +399,8 @@ maven -o consumer -Durl=tcp:<span class=
 
 <h3><a shape="rect" name="Navigation-Search"></a>Search</h3>
 
-
-<div>
+<p>
+</p><div>
 <form enctype="application/x-www-form-urlencoded" method="get" action="http://www.google.com/search" style="font-size: 10px;">
 <input type="hidden" name="ie" value="UTF-8">
 <input type="hidden" name="oe" value="UTF-8">



Mime
View raw message