Author: buildbot
Date: Thu Sep 20 14:24:44 2018
New Revision: 1035458
Log:
Production update by buildbot for activemq
Modified:
websites/production/activemq/content/activemq-connection-uris.html
websites/production/activemq/content/cache/main.pageCache
websites/production/activemq/content/configuring-transports.html
websites/production/activemq/content/configuring-version-5-transports.html
Modified: websites/production/activemq/content/activemq-connection-uris.html
==============================================================================
--- websites/production/activemq/content/activemq-connection-uris.html
(original)
+++ websites/production/activemq/content/activemq-connection-uris.html Thu Sep
20 14:24:44 2018
@@ -84,7 +84,7 @@
<tr>
<td valign="top" width="100%">
<div class="wiki-content maincontent"><h2
id="ActiveMQConnectionURIs-Transportconfigurationoptions">Transport
configuration options</h2><p>One of the first kinds of URI you are likely to
use is a transport URI to connect to a broker using a kind of transport.
Generally TCP or VM are the first transports you'll use.</p><div
class="confluence-information-macro confluence-information-macro-warning"><p
class="title">Be careful about whitespace</p><span class="aui-icon
aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>All of the following URI
configurations are based on the java.net.URI class which does not allow
whitespace to be used. So if you are using
<strong><code>failover:</code></strong>
or <strong><code>static:</code></strong> URIs, do not put any whitespace
around the <strong><code>','</code> </strong>symbol.</p></div></div><h3
id="ActiveMQConnectionURIs-TheAUTOTransport">The AUTO Transport</h3><p>S
tarting with 5.13.0 ActiveMQ has support for automatic wire protocol detection
over TCP, SSL, NIO, and NIO SSL.  OpenWire, STOMP, AMQP, and MQTT are
supported.  For details see the <a shape="rect" href="auto.html">AUTO
</a>Transport Reference.</p><h3 id="ActiveMQConnectionURIs-TheVMTransport">The
VM Transport</h3><p>The VM transport allows clients to connect to each other
inside the VM without the overhead of the network communication. The connection
used is not that of a socket connection but instead uses direct method
invocations to enable a high performance embedded messaging system.</p><p>The
first client to use the VM connection will boot an embedded broker. Subsequent
connections will attach that the same broker. Once all VM connections to the
broker have been closed, the embedded broker will automatically
shutdown.</p><p>For more information see the <a shape="rect"
href="vm-transport-reference.html">VM Transport Reference</a></p><h3
id="ActiveMQConnectionURIs-TheAMQ
PTransport">The AMQP Transport</h3><p>As of 5.8.0 ActiveMQ has support for
AMQP. For details see the <a shape="rect" href="amqp.html">AMQP</a> Transport
Reference.</p><h3 id="ActiveMQConnectionURIs-TheMQTTTransport">The MQTT
Transport</h3><p>Starting with 5.6.0 ActiveMQ also supports <a shape="rect"
class="external-link" href="http://mqtt.org/" rel="nofollow">MQTT</a>. Its a
light weight publish/subscribe messaging transport. See the <a shape="rect"
href="mqtt.html">MQTT</a> Transport Reference for details.</p><h3
id="ActiveMQConnectionURIs-TheTCPTransport">The TCP Transport</h3><p>The TCP
transport allows clients to connect a remote ActiveMQ using a a TCP
socket.</p><p>For more information see the <a shape="rect"
href="tcp-transport-reference.html">TCP Transport Reference</a></p><h3
id="ActiveMQConnectionURIs-TheNIOTransport">The NIO Transport</h3><p>Same as
the TCP transport, except that the <a shape="rect" class="external-link"
href="http://en.wikipedia.org/wiki/New_I/O" rel="nof
ollow">New I/O (NIO)</a> package is used, which may provide better
performance. The Java NIO package should not be confused with IBM's <a
shape="rect" class="external-link"
href="http://java.sys-con.com/read/46658.htm" rel="nofollow">AIO4J </a>
package.</p><p>To switch from TCP to NIO, simply change the scheme portion of
the URI. Here's an example as defined within a broker's XML configuration
file.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"><broker>
+<pre class="brush: java; gutter: false; theme: Default"><broker>
...
<transportConnectors>
<transportConnector name="nio" uri="nio://0.0.0.0:61616"/>
@@ -93,7 +93,7 @@
</broker>
</pre>
</div></div><p>Trying to use nio transport url on the client side will
instantiate the regular TCP transport. For more information see the <a
shape="rect" href="nio-transport-reference.html">NIO Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-TheSSLTransport">The SSL
Transport</h3><p>This allows you to talk over TCP using SSL. For more
information see the <a shape="rect" href="ssl-transport-reference.html">SSL
Transport Reference</a></p><h3
id="ActiveMQConnectionURIs-TheNIOSSLTransport">The NIO SSL Transport</h3><div
class="confluence-information-macro
confluence-information-macro-information"><p
class="title">Availability</p><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>Available since
5.6</p></div></div><p>Implementing SSL transport over NIO. This allows you to
connect large number of SSL clients to a single broker instance. It's server
side transport-option only</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"><broker>
+<pre class="brush: java; gutter: false; theme: Default"><broker>
...
<transportConnectors>
<transportConnector name="nio+ssl" uri="nio+ssl://0.0.0.0:61616"/>
@@ -101,8 +101,8 @@
...
</broker>
</pre>
-</div></div><p>Trying to use <code>nio+ssl</code> transport url on the client
side will instantiate the regular SSL transport.</p><h3
id="ActiveMQConnectionURIs-ThePeerTransport">The Peer Transport</h3><p>The Peer
transport provides a peer-to-peer network with ActiveMQ. What actually happens
is the peer transport uses the VM transport to create and connect to a local
embedded broker but which configures the embedded broker to establish network
connections to other peer embedded brokers.</p><p>For more information see the
<a shape="rect" href="peer-transport-reference.html">Peer Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-TheUDPTransport">The UDP
Transport</h3><p>This allows you to talk over UDP.</p><p>For more information
see the <a shape="rect" href="udp-transport-reference.html">UDP Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-TheMulticastTransport">The
Multicast Transport</h3><p>This allows you to talk over Multicast.</p><p>For
more information see the
<a shape="rect" href="multicast-transport-reference.html">Multicast Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-TheHTTPandHTTPSTransport">The
HTTP and HTTPS Transport</h3><p>This allows the ActiveMQ client and broker to
tunnel over HTTP. If the client is not JMS you might want to look at <a
shape="rect" href="rest.html">REST</a> or <a shape="rect"
href="ajax.html">Ajax</a> support instead.</p><p>For more information see the
<a shape="rect" href="http-and-https-transports-reference.html">HTTP and HTTPs
Transports Reference</a></p><h3
id="ActiveMQConnectionURIs-TheWebSocketsTransport">The WebSockets
Transport</h3><p>This transport uses the new HTML5 WebSockets to exchange
messages with the broker. For more information see the <a shape="rect"
href="websockets.html">WebSockets</a> Transport Reference</p><h3
id="ActiveMQConnectionURIs-TheStompTransport">The Stomp Transport</h3><p>A
plain text transport that can be used with many languages. See <a
shape="rect" href="sto
mp.html">Stomp</a> for more details.</p><h2
id="ActiveMQConnectionURIs-GeneralPurposeURIs">General Purpose URIs</h2><p>You
can configure other features via the URI syntax as follows...</p><h3
id="ActiveMQConnectionURIs-ConnectionConfigurationURI">Connection Configuration
URI</h3><p>Any Apache ActiveMQ JMS connection can be configured using the URL
or explicitly setting properties on the <a shape="rect" class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnection.html">ActiveMQConnection</a>
or <a shape="rect" class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnectionFactory.html">ActiveMQConnectionFactory</a>
objects themselves.</p><p>For more information see <a shape="rect"
href="connection-configuration-uri.html">Connection Configuration
URI</a></p><h3 id="ActiveMQConnectionURIs-DestinationOptions">Destination
Options</h3><p>You can config
ure various consumer related options using <a shape="rect"
href="destination-options.html">Destination Options</a> which allow you to
configure destinations using URI syntax.</p><h3
id="ActiveMQConnectionURIs-BrokerConfigurationURI">Broker Configuration
URI</h3><p>You can use a <a shape="rect"
href="broker-configuration-uri.html">Broker Configuration URI</a> to configure
an embedded broker, either using the BrokerFactory helper class from Java or
using the activemq shell script. For more details see <a shape="rect"
href="run-broker.html">How to Run a Broker</a></p><h3
id="ActiveMQConnectionURIs-ConfiguringWireFormats">Configuring Wire
Formats</h3><p>Any transport which involves marshalling messages onto some kind
of network transport like TCP or UDP will typically use the <a shape="rect"
href="openwire.html">OpenWire</a> format. This is configurable to customize how
things appear on the wire.</p><p>For more information see <a shape="rect"
href="configuring-wire-formats.html">Configu
ring Wire Formats</a></p><h2
id="ActiveMQConnectionURIs-HighLevelProtocolURIs">High Level Protocol
URIs</h2><p>The following higher level protocols can be configured via
URI</p><h3 id="ActiveMQConnectionURIs-TheFailoverTransport">The Failover
Transport</h3><p>The Failover transport layers reconnect logic on top of any of
the other transports. This is what used to be the Reliable transport in
ActiveMQ 3. Its configuration syntax allows you to specify any number of
composite URIs. The Failover transport randomly chooses one of the composite
URIs and attempts to establish a connection to it. If it does not succeed or if
it subsequently fails, a new connection is established to one of the other URIs
in the list.</p><p>For more information see the <a shape="rect"
href="failover-transport-reference.html">Failover Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-TheFanoutTransport">The Fanout
Transport</h3><p>The Fanout transport layers reconnect and replicate logic on
top of any
of the other transports. It is used replicate commands to multiple
brokers.</p><p>For more information see the <a shape="rect"
href="fanout-transport-reference.html">Fanout Transport Reference</a></p><h2
id="ActiveMQConnectionURIs-UsingDiscovery">Using Discovery</h2><p>Often when
using transports like TCP you want to use <a shape="rect"
href="discovery.html">Discovery</a> to locate the available brokers. This is
different from using, say, <a shape="rect"
href="multicast-transport-reference.html">Multicast</a> - as the actual main
communication is over TCP but multicast is purely used to discover the location
of brokers.</p><h3 id="ActiveMQConnectionURIs-TheDiscoveryTransport">The
Discovery Transport</h3><p>The Discovery transport works just like the reliable
transport, except that it uses a discovery agent to locate the list of URIs to
connect to.</p><p>For more information see the <a shape="rect"
href="discovery-transport-reference.html">Discovery Transport
Reference</a></p><h3 id=
"ActiveMQConnectionURIs-TheZeroConfTransport">The ZeroConf
Transport</h3><p>The ZeroConf transport provides <a shape="rect"
href="discovery.html">Discovery</a> and it works like the <a shape="rect"
href="discovery-transport-reference.html">Discovery Transport</a> but rather
than using our own multicast based discovery mechanism (which allows you to
configure the exact multicast address and port, etc.), the <a shape="rect"
href="zeroconf.html">ZeroConf</a> transport is used instead.</p><p>For more
information see the <a shape="rect"
href="zeroconf-transport-reference.html">ZeroConf Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-Serversideoptions">Server side
options</h3><p>There are a number of options that can be used for changing
behavior on the server for
the <strong><code>TransportConnector</code></strong> in the ActiveMQ
broker configuration. These are:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="conflue
nceTh"><p>property name</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><span style="color: red;">
<code>allowLinkStealing</code><br clear="none"></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>This is enabled for default for MQTT
transport.</p><p>Link Stealing is where the last of two or more connections
with the same id (clientID for JMS) is deemed the valid connection and the
older one is closed by the broker.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>discoveryURI</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>If set, the multicast discovery address for
client connections to find the broker.</p><
/td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>enableStatusMonitor</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will monitor connections to
determine if they are blocked.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>name</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The name of
the <strong><code>TransportConnector</code></strong>
instance.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>rebalanceClusterClients</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will automatically re-balance
clients across the cluster on changes of topology.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><
code>updateClusterClients</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If enabled, will update client connections (if they use
the <strong><code>failover://</code></strong> transport) of changes to the
broker cluster.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterClientsOnRemove</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will update clients if a broker
is removed from the cluster.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterFilter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Comma separated list of regular
expressions. Brokers with a name matching the pattern will be included for
client updates.
</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>uri</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The bind address for the
transport.</p></td></tr></tbody></table></div><div
class="confluence-information-macro
confluence-information-macro-information"><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p><strong>Note</strong>: properties
in <span style="color: rgb(255,0,0);">red</span> are version 5.10 (and higher)
options only.</p></div></div><p>Example configuration:</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;"><broker>
+</div></div><p>Trying to use <code>nio+ssl</code> transport url on the client
side will instantiate the regular SSL transport.</p><h3
id="ActiveMQConnectionURIs-ThePeerTransport">The Peer Transport</h3><p>The Peer
transport provides a peer-to-peer network with ActiveMQ. What actually happens
is the peer transport uses the VM transport to create and connect to a local
embedded broker but which configures the embedded broker to establish network
connections to other peer embedded brokers.</p><p>For more information see the
<a shape="rect" href="peer-transport-reference.html">Peer Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-TheUDPTransport">The UDP
Transport</h3><p>This allows you to talk over UDP.</p><p>For more information
see the <a shape="rect" href="udp-transport-reference.html">UDP Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-TheMulticastTransport">The
Multicast Transport</h3><p>This allows you to talk over Multicast.</p><p>For
more information see the
<a shape="rect" href="multicast-transport-reference.html">Multicast Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-TheHTTPandHTTPSTransport">The
HTTP and HTTPS Transport</h3><p>This allows the ActiveMQ client and broker to
tunnel over HTTP. If the client is not JMS you might want to look at <a
shape="rect" href="rest.html">REST</a> or <a shape="rect"
href="ajax.html">Ajax</a> support instead.</p><p>For more information see the
<a shape="rect" href="http-and-https-transports-reference.html">HTTP and HTTPs
Transports Reference</a></p><h3
id="ActiveMQConnectionURIs-TheWebSocketsTransport">The WebSockets
Transport</h3><p>This transport uses the new HTML5 WebSockets to exchange
messages with the broker. For more information see the <a shape="rect"
href="websockets.html">WebSockets</a> Transport Reference</p><h3
id="ActiveMQConnectionURIs-TheStompTransport">The Stomp Transport</h3><p>A
plain text transport that can be used with many languages. See <a
shape="rect" href="sto
mp.html">Stomp</a> for more details.</p><h2
id="ActiveMQConnectionURIs-GeneralPurposeURIs">General Purpose URIs</h2><p>You
can configure other features via the URI syntax as follows...</p><h3
id="ActiveMQConnectionURIs-ConnectionConfigurationURI">Connection Configuration
URI</h3><p>Any Apache ActiveMQ JMS connection can be configured using the URL
or explicitly setting properties on the <a shape="rect" class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnection.html">ActiveMQConnection</a>
or <a shape="rect" class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnectionFactory.html">ActiveMQConnectionFactory</a>
objects themselves.</p><p>For more information see <a shape="rect"
href="connection-configuration-uri.html">Connection Configuration
URI</a></p><h3 id="ActiveMQConnectionURIs-DestinationOptions">Destination
Options</h3><p>You can config
ure various consumer related options using <a shape="rect"
href="destination-options.html">Destination Options</a> which allow you to
configure destinations using URI syntax.</p><h3
id="ActiveMQConnectionURIs-BrokerConfigurationURI">Broker Configuration
URI</h3><p>You can use a <a shape="rect"
href="broker-configuration-uri.html">Broker Configuration URI</a> to configure
an embedded broker, either using the BrokerFactory helper class from Java or
using the activemq shell script. For more details see <a shape="rect"
href="run-broker.html">How to Run a Broker</a></p><h3
id="ActiveMQConnectionURIs-ConfiguringWireFormats">Configuring Wire
Formats</h3><p>Any transport which involves marshalling messages onto some kind
of network transport like TCP or UDP will typically use the <a shape="rect"
href="openwire.html">OpenWire</a> format. This is configurable to customize how
things appear on the wire.</p><p>For more information see <a shape="rect"
href="configuring-wire-formats.html">Configu
ring Wire Formats</a></p><h2
id="ActiveMQConnectionURIs-HighLevelProtocolURIs">High Level Protocol
URIs</h2><p>The following higher level protocols can be configured via
URI</p><h3 id="ActiveMQConnectionURIs-TheFailoverTransport">The Failover
Transport</h3><p>The Failover transport layers reconnect logic on top of any of
the other transports. This is what used to be the Reliable transport in
ActiveMQ 3. Its configuration syntax allows you to specify any number of
composite URIs. The Failover transport randomly chooses one of the composite
URIs and attempts to establish a connection to it. If it does not succeed or if
it subsequently fails, a new connection is established to one of the other URIs
in the list.</p><p>For more information see the <a shape="rect"
href="failover-transport-reference.html">Failover Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-TheFanoutTransport">The Fanout
Transport</h3><p>The Fanout transport layers reconnect and replicate logic on
top of any
of the other transports. It is used replicate commands to multiple
brokers.</p><p>For more information see the <a shape="rect"
href="fanout-transport-reference.html">Fanout Transport Reference</a></p><h2
id="ActiveMQConnectionURIs-UsingDiscovery">Using Discovery</h2><p>Often when
using transports like TCP you want to use <a shape="rect"
href="discovery.html">Discovery</a> to locate the available brokers. This is
different from using, say, <a shape="rect"
href="multicast-transport-reference.html">Multicast</a> - as the actual main
communication is over TCP but multicast is purely used to discover the location
of brokers.</p><h3 id="ActiveMQConnectionURIs-TheDiscoveryTransport">The
Discovery Transport</h3><p>The Discovery transport works just like the reliable
transport, except that it uses a discovery agent to locate the list of URIs to
connect to.</p><p>For more information see the <a shape="rect"
href="discovery-transport-reference.html">Discovery Transport
Reference</a></p><h3 id=
"ActiveMQConnectionURIs-TheZeroConfTransport">The ZeroConf
Transport</h3><p>The ZeroConf transport provides <a shape="rect"
href="discovery.html">Discovery</a> and it works like the <a shape="rect"
href="discovery-transport-reference.html">Discovery Transport</a> but rather
than using our own multicast based discovery mechanism (which allows you to
configure the exact multicast address and port, etc.), the <a shape="rect"
href="zeroconf.html">ZeroConf</a> transport is used instead.</p><p>For more
information see the <a shape="rect"
href="zeroconf-transport-reference.html">ZeroConf Transport
Reference</a></p><h3 id="ActiveMQConnectionURIs-Serversideoptions">Server side
options</h3><p>There are a number of options that can be used for changing
behavior on the server for
the <strong><code>TransportConnector</code></strong> in the ActiveMQ
broker configuration. These are:</p><div class="table-wrap"><table
class="confluenceTable"><colgroup span="1"><col span="1"><col span="1"><col s
pan="1"></colgroup><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>property name</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><span style="color: red;"> <span
style="color: rgb(0,0,0);"><code>allowLinkStealing</code></span><br
clear="none"></span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This is enabled for default for MQTT
transport.</p><p>Link Stealing is where the last of two or more connections
with the same id (clientID for JMS) is deemed the valid connection and the
older one is closed by the broker.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>discoveryURI</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1"
rowspan="1"
class="confluenceTd"><p>If set, the multicast discovery address for client
connections to find the broker.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>enableStatusMonitor</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will monitor connections to
determine if they are blocked.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>name</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The name of
the <strong><code>TransportConnector</code></strong>
instance.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>rebalanceClusterClients</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will automatically re-balance
clients a
cross the cluster on changes of topology.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>updateClusterClients</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>If enabled, will update client
connections (if they use the <strong><code>failover://</code></strong>
transport) of changes to the broker cluster.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>updateClusterClientsOnRemove</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will update clients if a broker
is removed from the cluster.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterFilter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Comma sepa
rated list of regular expressions. Brokers with a name matching the pattern
will be included for client updates.</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>uri</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The bind address for the
transport.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p
class="p1"><code><span class="s1">warnOnRemoteClose</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td
colspan="1" rowspan="1" class="confluenceTd">If set, issue a WARN log event if
a client closes its connection in an abrupt manner, one example being a
load-balancer health check. For a regular JMS client this WARN message is
indicative of a client going away without a connection.close
(5.16)</td></tr></tbody></table></div><p>Example configuration:</p><div
class="code panel pdl" style="border-width: 1px
;"><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default"><broker>
   <!-- ... -->
   <transportConnectors>
Modified: websites/production/activemq/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/activemq/content/configuring-transports.html
==============================================================================
--- websites/production/activemq/content/configuring-transports.html (original)
+++ websites/production/activemq/content/configuring-transports.html Thu Sep 20
14:24:44 2018
@@ -83,7 +83,7 @@
<tr>
<td valign="top" width="100%">
<div class="wiki-content maincontent"><h2
id="ConfiguringTransports-Transportconfigurationoptions">Transport
configuration options</h2><p>One of the first kinds of URI you are likely to
use is a transport URI to connect to a broker using a kind of transport.
Generally TCP or VM are the first transports you'll use.</p><div
class="confluence-information-macro confluence-information-macro-warning"><p
class="title">Be careful about whitespace</p><span class="aui-icon
aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>All of the following URI
configurations are based on the java.net.URI class which does not allow
whitespace to be used. So if you are using
<strong><code>failover:</code></strong>
or <strong><code>static:</code></strong> URIs, do not put any whitespace
around the <strong><code>','</code> </strong>symbol.</p></div></div><h3
id="ConfiguringTransports-TheAUTOTransport">The AUTO Transport</h3><p>Sta
rting with 5.13.0 ActiveMQ has support for automatic wire protocol detection
over TCP, SSL, NIO, and NIO SSL.  OpenWire, STOMP, AMQP, and MQTT are
supported.  For details see the <a shape="rect" href="auto.html">AUTO
</a>Transport Reference.</p><h3 id="ConfiguringTransports-TheVMTransport">The
VM Transport</h3><p>The VM transport allows clients to connect to each other
inside the VM without the overhead of the network communication. The connection
used is not that of a socket connection but instead uses direct method
invocations to enable a high performance embedded messaging system.</p><p>The
first client to use the VM connection will boot an embedded broker. Subsequent
connections will attach that the same broker. Once all VM connections to the
broker have been closed, the embedded broker will automatically
shutdown.</p><p>For more information see the <a shape="rect"
href="vm-transport-reference.html">VM Transport Reference</a></p><h3
id="ConfiguringTransports-TheAMQPTra
nsport">The AMQP Transport</h3><p>As of 5.8.0 ActiveMQ has support for AMQP.
For details see the <a shape="rect" href="amqp.html">AMQP</a> Transport
Reference.</p><h3 id="ConfiguringTransports-TheMQTTTransport">The MQTT
Transport</h3><p>Starting with 5.6.0 ActiveMQ also supports <a shape="rect"
class="external-link" href="http://mqtt.org/" rel="nofollow">MQTT</a>. Its a
light weight publish/subscribe messaging transport. See the <a shape="rect"
href="mqtt.html">MQTT</a> Transport Reference for details.</p><h3
id="ConfiguringTransports-TheTCPTransport">The TCP Transport</h3><p>The TCP
transport allows clients to connect a remote ActiveMQ using a a TCP
socket.</p><p>For more information see the <a shape="rect"
href="tcp-transport-reference.html">TCP Transport Reference</a></p><h3
id="ConfiguringTransports-TheNIOTransport">The NIO Transport</h3><p>Same as the
TCP transport, except that the <a shape="rect" class="external-link"
href="http://en.wikipedia.org/wiki/New_I/O" rel="nofollow">
New I/O (NIO)</a> package is used, which may provide better performance. The
Java NIO package should not be confused with IBM's <a shape="rect"
class="external-link" href="http://java.sys-con.com/read/46658.htm"
rel="nofollow">AIO4J </a> package.</p><p>To switch from TCP to NIO, simply
change the scheme portion of the URI. Here's an example as defined within a
broker's XML configuration file.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"><broker>
+<pre class="brush: java; gutter: false; theme: Default"><broker>
...
<transportConnectors>
<transportConnector name="nio" uri="nio://0.0.0.0:61616"/>
@@ -92,7 +92,7 @@
</broker>
</pre>
</div></div><p>Trying to use nio transport url on the client side will
instantiate the regular TCP transport. For more information see the <a
shape="rect" href="nio-transport-reference.html">NIO Transport
Reference</a></p><h3 id="ConfiguringTransports-TheSSLTransport">The SSL
Transport</h3><p>This allows you to talk over TCP using SSL. For more
information see the <a shape="rect" href="ssl-transport-reference.html">SSL
Transport Reference</a></p><h3
id="ConfiguringTransports-TheNIOSSLTransport">The NIO SSL Transport</h3><div
class="confluence-information-macro
confluence-information-macro-information"><p
class="title">Availability</p><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>Available since
5.6</p></div></div><p>Implementing SSL transport over NIO. This allows you to
connect large number of SSL clients to a single broker instance. It's server
side transport-option only</p><div cl
ass="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"><broker>
+<pre class="brush: java; gutter: false; theme: Default"><broker>
...
<transportConnectors>
<transportConnector name="nio+ssl" uri="nio+ssl://0.0.0.0:61616"/>
@@ -100,8 +100,8 @@
...
</broker>
</pre>
-</div></div><p>Trying to use <code>nio+ssl</code> transport url on the client
side will instantiate the regular SSL transport.</p><h3
id="ConfiguringTransports-ThePeerTransport">The Peer Transport</h3><p>The Peer
transport provides a peer-to-peer network with ActiveMQ. What actually happens
is the peer transport uses the VM transport to create and connect to a local
embedded broker but which configures the embedded broker to establish network
connections to other peer embedded brokers.</p><p>For more information see the
<a shape="rect" href="peer-transport-reference.html">Peer Transport
Reference</a></p><h3 id="ConfiguringTransports-TheUDPTransport">The UDP
Transport</h3><p>This allows you to talk over UDP.</p><p>For more information
see the <a shape="rect" href="udp-transport-reference.html">UDP Transport
Reference</a></p><h3 id="ConfiguringTransports-TheMulticastTransport">The
Multicast Transport</h3><p>This allows you to talk over Multicast.</p><p>For
more information see the <a
shape="rect" href="multicast-transport-reference.html">Multicast Transport
Reference</a></p><h3 id="ConfiguringTransports-TheHTTPandHTTPSTransport">The
HTTP and HTTPS Transport</h3><p>This allows the ActiveMQ client and broker to
tunnel over HTTP. If the client is not JMS you might want to look at <a
shape="rect" href="rest.html">REST</a> or <a shape="rect"
href="ajax.html">Ajax</a> support instead.</p><p>For more information see the
<a shape="rect" href="http-and-https-transports-reference.html">HTTP and HTTPs
Transports Reference</a></p><h3
id="ConfiguringTransports-TheWebSocketsTransport">The WebSockets
Transport</h3><p>This transport uses the new HTML5 WebSockets to exchange
messages with the broker. For more information see the <a shape="rect"
href="websockets.html">WebSockets</a> Transport Reference</p><h3
id="ConfiguringTransports-TheStompTransport">The Stomp Transport</h3><p>A plain
text transport that can be used with many languages. See <a shape="rect"
href="stomp.htm
l">Stomp</a> for more details.</p><h2
id="ConfiguringTransports-GeneralPurposeURIs">General Purpose URIs</h2><p>You
can configure other features via the URI syntax as follows...</p><h3
id="ConfiguringTransports-ConnectionConfigurationURI">Connection Configuration
URI</h3><p>Any Apache ActiveMQ JMS connection can be configured using the URL
or explicitly setting properties on the <a shape="rect" class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnection.html">ActiveMQConnection</a>
or <a shape="rect" class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnectionFactory.html">ActiveMQConnectionFactory</a>
objects themselves.</p><p>For more information see <a shape="rect"
href="connection-configuration-uri.html">Connection Configuration
URI</a></p><h3 id="ConfiguringTransports-DestinationOptions">Destination
Options</h3><p>You can configure vario
us consumer related options using <a shape="rect"
href="destination-options.html">Destination Options</a> which allow you to
configure destinations using URI syntax.</p><h3
id="ConfiguringTransports-BrokerConfigurationURI">Broker Configuration
URI</h3><p>You can use a <a shape="rect"
href="broker-configuration-uri.html">Broker Configuration URI</a> to configure
an embedded broker, either using the BrokerFactory helper class from Java or
using the activemq shell script. For more details see <a shape="rect"
href="run-broker.html">How to Run a Broker</a></p><h3
id="ConfiguringTransports-ConfiguringWireFormats">Configuring Wire
Formats</h3><p>Any transport which involves marshalling messages onto some kind
of network transport like TCP or UDP will typically use the <a shape="rect"
href="openwire.html">OpenWire</a> format. This is configurable to customize how
things appear on the wire.</p><p>For more information see <a shape="rect"
href="configuring-wire-formats.html">Configuring Wire F
ormats</a></p><h2 id="ConfiguringTransports-HighLevelProtocolURIs">High Level
Protocol URIs</h2><p>The following higher level protocols can be configured via
URI</p><h3 id="ConfiguringTransports-TheFailoverTransport">The Failover
Transport</h3><p>The Failover transport layers reconnect logic on top of any of
the other transports. This is what used to be the Reliable transport in
ActiveMQ 3. Its configuration syntax allows you to specify any number of
composite URIs. The Failover transport randomly chooses one of the composite
URIs and attempts to establish a connection to it. If it does not succeed or if
it subsequently fails, a new connection is established to one of the other URIs
in the list.</p><p>For more information see the <a shape="rect"
href="failover-transport-reference.html">Failover Transport
Reference</a></p><h3 id="ConfiguringTransports-TheFanoutTransport">The Fanout
Transport</h3><p>The Fanout transport layers reconnect and replicate logic on
top of any of the other t
ransports. It is used replicate commands to multiple brokers.</p><p>For more
information see the <a shape="rect"
href="fanout-transport-reference.html">Fanout Transport Reference</a></p><h2
id="ConfiguringTransports-UsingDiscovery">Using Discovery</h2><p>Often when
using transports like TCP you want to use <a shape="rect"
href="discovery.html">Discovery</a> to locate the available brokers. This is
different from using, say, <a shape="rect"
href="multicast-transport-reference.html">Multicast</a> - as the actual main
communication is over TCP but multicast is purely used to discover the location
of brokers.</p><h3 id="ConfiguringTransports-TheDiscoveryTransport">The
Discovery Transport</h3><p>The Discovery transport works just like the reliable
transport, except that it uses a discovery agent to locate the list of URIs to
connect to.</p><p>For more information see the <a shape="rect"
href="discovery-transport-reference.html">Discovery Transport
Reference</a></p><h3 id="ConfiguringTran
sports-TheZeroConfTransport">The ZeroConf Transport</h3><p>The ZeroConf
transport provides <a shape="rect" href="discovery.html">Discovery</a> and it
works like the <a shape="rect"
href="discovery-transport-reference.html">Discovery Transport</a> but rather
than using our own multicast based discovery mechanism (which allows you to
configure the exact multicast address and port, etc.), the <a shape="rect"
href="zeroconf.html">ZeroConf</a> transport is used instead.</p><p>For more
information see the <a shape="rect"
href="zeroconf-transport-reference.html">ZeroConf Transport
Reference</a></p><h3 id="ConfiguringTransports-Serversideoptions">Server side
options</h3><p>There are a number of options that can be used for changing
behavior on the server for
the <strong><code>TransportConnector</code></strong> in the ActiveMQ
broker configuration. These are:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>property
name</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><span style="color: red;">
<code>allowLinkStealing</code><br clear="none"></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>This is enabled for default for MQTT
transport.</p><p>Link Stealing is where the last of two or more connections
with the same id (clientID for JMS) is deemed the valid connection and the
older one is closed by the broker.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>discoveryURI</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>If set, the multicast discovery address for
client connections to find the broker.</p></td></tr><tr><td c
olspan="1" rowspan="1"
class="confluenceTd"><p><code>enableStatusMonitor</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will monitor connections to
determine if they are blocked.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>name</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The name of
the <strong><code>TransportConnector</code></strong>
instance.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>rebalanceClusterClients</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will automatically re-balance
clients across the cluster on changes of topology.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>updateCluster
Clients</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If enabled, will update client connections (if they use
the <strong><code>failover://</code></strong> transport) of changes to the
broker cluster.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterClientsOnRemove</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will update clients if a broker
is removed from the cluster.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterFilter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Comma separated list of regular
expressions. Brokers with a name matching the pattern will be included for
client updates.</p></td></tr><tr>
<td colspan="1" rowspan="1"
class="confluenceTd"><p><code>uri</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The bind address for the
transport.</p></td></tr></tbody></table></div><div
class="confluence-information-macro
confluence-information-macro-information"><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p><strong>Note</strong>: properties
in <span style="color: rgb(255,0,0);">red</span> are version 5.10 (and higher)
options only.</p></div></div><p>Example configuration:</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;"><broker>
+</div></div><p>Trying to use <code>nio+ssl</code> transport url on the client
side will instantiate the regular SSL transport.</p><h3
id="ConfiguringTransports-ThePeerTransport">The Peer Transport</h3><p>The Peer
transport provides a peer-to-peer network with ActiveMQ. What actually happens
is the peer transport uses the VM transport to create and connect to a local
embedded broker but which configures the embedded broker to establish network
connections to other peer embedded brokers.</p><p>For more information see the
<a shape="rect" href="peer-transport-reference.html">Peer Transport
Reference</a></p><h3 id="ConfiguringTransports-TheUDPTransport">The UDP
Transport</h3><p>This allows you to talk over UDP.</p><p>For more information
see the <a shape="rect" href="udp-transport-reference.html">UDP Transport
Reference</a></p><h3 id="ConfiguringTransports-TheMulticastTransport">The
Multicast Transport</h3><p>This allows you to talk over Multicast.</p><p>For
more information see the <a
shape="rect" href="multicast-transport-reference.html">Multicast Transport
Reference</a></p><h3 id="ConfiguringTransports-TheHTTPandHTTPSTransport">The
HTTP and HTTPS Transport</h3><p>This allows the ActiveMQ client and broker to
tunnel over HTTP. If the client is not JMS you might want to look at <a
shape="rect" href="rest.html">REST</a> or <a shape="rect"
href="ajax.html">Ajax</a> support instead.</p><p>For more information see the
<a shape="rect" href="http-and-https-transports-reference.html">HTTP and HTTPs
Transports Reference</a></p><h3
id="ConfiguringTransports-TheWebSocketsTransport">The WebSockets
Transport</h3><p>This transport uses the new HTML5 WebSockets to exchange
messages with the broker. For more information see the <a shape="rect"
href="websockets.html">WebSockets</a> Transport Reference</p><h3
id="ConfiguringTransports-TheStompTransport">The Stomp Transport</h3><p>A plain
text transport that can be used with many languages. See <a shape="rect"
href="stomp.htm
l">Stomp</a> for more details.</p><h2
id="ConfiguringTransports-GeneralPurposeURIs">General Purpose URIs</h2><p>You
can configure other features via the URI syntax as follows...</p><h3
id="ConfiguringTransports-ConnectionConfigurationURI">Connection Configuration
URI</h3><p>Any Apache ActiveMQ JMS connection can be configured using the URL
or explicitly setting properties on the <a shape="rect" class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnection.html">ActiveMQConnection</a>
or <a shape="rect" class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnectionFactory.html">ActiveMQConnectionFactory</a>
objects themselves.</p><p>For more information see <a shape="rect"
href="connection-configuration-uri.html">Connection Configuration
URI</a></p><h3 id="ConfiguringTransports-DestinationOptions">Destination
Options</h3><p>You can configure vario
us consumer related options using <a shape="rect"
href="destination-options.html">Destination Options</a> which allow you to
configure destinations using URI syntax.</p><h3
id="ConfiguringTransports-BrokerConfigurationURI">Broker Configuration
URI</h3><p>You can use a <a shape="rect"
href="broker-configuration-uri.html">Broker Configuration URI</a> to configure
an embedded broker, either using the BrokerFactory helper class from Java or
using the activemq shell script. For more details see <a shape="rect"
href="run-broker.html">How to Run a Broker</a></p><h3
id="ConfiguringTransports-ConfiguringWireFormats">Configuring Wire
Formats</h3><p>Any transport which involves marshalling messages onto some kind
of network transport like TCP or UDP will typically use the <a shape="rect"
href="openwire.html">OpenWire</a> format. This is configurable to customize how
things appear on the wire.</p><p>For more information see <a shape="rect"
href="configuring-wire-formats.html">Configuring Wire F
ormats</a></p><h2 id="ConfiguringTransports-HighLevelProtocolURIs">High Level
Protocol URIs</h2><p>The following higher level protocols can be configured via
URI</p><h3 id="ConfiguringTransports-TheFailoverTransport">The Failover
Transport</h3><p>The Failover transport layers reconnect logic on top of any of
the other transports. This is what used to be the Reliable transport in
ActiveMQ 3. Its configuration syntax allows you to specify any number of
composite URIs. The Failover transport randomly chooses one of the composite
URIs and attempts to establish a connection to it. If it does not succeed or if
it subsequently fails, a new connection is established to one of the other URIs
in the list.</p><p>For more information see the <a shape="rect"
href="failover-transport-reference.html">Failover Transport
Reference</a></p><h3 id="ConfiguringTransports-TheFanoutTransport">The Fanout
Transport</h3><p>The Fanout transport layers reconnect and replicate logic on
top of any of the other t
ransports. It is used replicate commands to multiple brokers.</p><p>For more
information see the <a shape="rect"
href="fanout-transport-reference.html">Fanout Transport Reference</a></p><h2
id="ConfiguringTransports-UsingDiscovery">Using Discovery</h2><p>Often when
using transports like TCP you want to use <a shape="rect"
href="discovery.html">Discovery</a> to locate the available brokers. This is
different from using, say, <a shape="rect"
href="multicast-transport-reference.html">Multicast</a> - as the actual main
communication is over TCP but multicast is purely used to discover the location
of brokers.</p><h3 id="ConfiguringTransports-TheDiscoveryTransport">The
Discovery Transport</h3><p>The Discovery transport works just like the reliable
transport, except that it uses a discovery agent to locate the list of URIs to
connect to.</p><p>For more information see the <a shape="rect"
href="discovery-transport-reference.html">Discovery Transport
Reference</a></p><h3 id="ConfiguringTran
sports-TheZeroConfTransport">The ZeroConf Transport</h3><p>The ZeroConf
transport provides <a shape="rect" href="discovery.html">Discovery</a> and it
works like the <a shape="rect"
href="discovery-transport-reference.html">Discovery Transport</a> but rather
than using our own multicast based discovery mechanism (which allows you to
configure the exact multicast address and port, etc.), the <a shape="rect"
href="zeroconf.html">ZeroConf</a> transport is used instead.</p><p>For more
information see the <a shape="rect"
href="zeroconf-transport-reference.html">ZeroConf Transport
Reference</a></p><h3 id="ConfiguringTransports-Serversideoptions">Server side
options</h3><p>There are a number of options that can be used for changing
behavior on the server for
the <strong><code>TransportConnector</code></strong> in the ActiveMQ
broker configuration. These are:</p><div class="table-wrap"><table
class="confluenceTable"><colgroup span="1"><col span="1"><col span="1"><col
span="1"></colgroup
><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>property
>name</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><span style="color: red;"> <span
>style="color: rgb(0,0,0);"><code>allowLinkStealing</code></span><br
>clear="none"></span></p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p><code>false</code></p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p>This is enabled for default for MQTT
>transport.</p><p>Link Stealing is where the last of two or more connections
>with the same id (clientID for JMS) is deemed the valid connection and the
>older one is closed by the broker.</p></td></tr><tr><td colspan="1"
>rowspan="1" class="confluenceTd"><p><code>discoveryURI</code></p></td><td
>colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
>colspan="1" rowspan="1" class="confluence
Td"><p>If set, the multicast discovery address for client connections to find
the broker.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>enableStatusMonitor</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will monitor connections to
determine if they are blocked.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>name</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The name of
the <strong><code>TransportConnector</code></strong>
instance.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>rebalanceClusterClients</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will automatically re-balance
clients across the cluster
on changes of topology.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterClients</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>If enabled, will update client
connections (if they use the <strong><code>failover://</code></strong>
transport) of changes to the broker cluster.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>updateClusterClientsOnRemove</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will update clients if a broker
is removed from the cluster.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterFilter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Comma separated list of regu
lar expressions. Brokers with a name matching the pattern will be included for
client updates.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>uri</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The bind address for the
transport.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p
class="p1"><code><span class="s1">warnOnRemoteClose</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td
colspan="1" rowspan="1" class="confluenceTd">If set, issue a WARN log event if
a client closes its connection in an abrupt manner, one example being a
load-balancer health check. For a regular JMS client this WARN message is
indicative of a client going away without a connection.close
(5.16)</td></tr></tbody></table></div><p>Example configuration:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="cod
eContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default"><broker>
   <!-- ... -->
   <transportConnectors>
Modified:
websites/production/activemq/content/configuring-version-5-transports.html
==============================================================================
--- websites/production/activemq/content/configuring-version-5-transports.html
(original)
+++ websites/production/activemq/content/configuring-version-5-transports.html
Thu Sep 20 14:24:44 2018
@@ -84,7 +84,7 @@
<tr>
<td valign="top" width="100%">
<div class="wiki-content maincontent"><h2
id="ConfiguringVersion5Transports-Transportconfigurationoptions">Transport
configuration options</h2><p>One of the first kinds of URI you are likely to
use is a transport URI to connect to a broker using a kind of transport.
Generally TCP or VM are the first transports you'll use.</p><div
class="confluence-information-macro confluence-information-macro-warning"><p
class="title">Be careful about whitespace</p><span class="aui-icon
aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>All of the following URI
configurations are based on the java.net.URI class which does not allow
whitespace to be used. So if you are using
<strong><code>failover:</code></strong>
or <strong><code>static:</code></strong> URIs, do not put any whitespace
around the <strong><code>','</code> </strong>symbol.</p></div></div><h3
id="ConfiguringVersion5Transports-TheAUTOTransport">The AUTO Tran
sport</h3><p>Starting with 5.13.0 ActiveMQ has support for automatic wire
protocol detection over TCP, SSL, NIO, and NIO SSL.  OpenWire, STOMP,
AMQP, and MQTT are supported.  For details see the <a shape="rect"
href="auto.html">AUTO </a>Transport Reference.</p><h3
id="ConfiguringVersion5Transports-TheVMTransport">The VM Transport</h3><p>The
VM transport allows clients to connect to each other inside the VM without the
overhead of the network communication. The connection used is not that of a
socket connection but instead uses direct method invocations to enable a high
performance embedded messaging system.</p><p>The first client to use the VM
connection will boot an embedded broker. Subsequent connections will attach
that the same broker. Once all VM connections to the broker have been closed,
the embedded broker will automatically shutdown.</p><p>For more information see
the <a shape="rect" href="vm-transport-reference.html">VM Transport
Reference</a></p><h3 id="Configur
ingVersion5Transports-TheAMQPTransport">The AMQP Transport</h3><p>As of 5.8.0
ActiveMQ has support for AMQP. For details see the <a shape="rect"
href="amqp.html">AMQP</a> Transport Reference.</p><h3
id="ConfiguringVersion5Transports-TheMQTTTransport">The MQTT
Transport</h3><p>Starting with 5.6.0 ActiveMQ also supports <a shape="rect"
class="external-link" href="http://mqtt.org/" rel="nofollow">MQTT</a>. Its a
light weight publish/subscribe messaging transport. See the <a shape="rect"
href="mqtt.html">MQTT</a> Transport Reference for details.</p><h3
id="ConfiguringVersion5Transports-TheTCPTransport">The TCP Transport</h3><p>The
TCP transport allows clients to connect a remote ActiveMQ using a a TCP
socket.</p><p>For more information see the <a shape="rect"
href="tcp-transport-reference.html">TCP Transport Reference</a></p><h3
id="ConfiguringVersion5Transports-TheNIOTransport">The NIO
Transport</h3><p>Same as the TCP transport, except that the <a shape="rect"
class="external-link" hre
f="http://en.wikipedia.org/wiki/New_I/O" rel="nofollow">New I/O (NIO)</a>
package is used, which may provide better performance. The Java NIO package
should not be confused with IBM's <a shape="rect" class="external-link"
href="http://java.sys-con.com/read/46658.htm" rel="nofollow">AIO4J </a>
package.</p><p>To switch from TCP to NIO, simply change the scheme portion of
the URI. Here's an example as defined within a broker's XML configuration
file.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"><broker>
+<pre class="brush: java; gutter: false; theme: Default"><broker>
...
<transportConnectors>
<transportConnector name="nio" uri="nio://0.0.0.0:61616"/>
@@ -93,7 +93,7 @@
</broker>
</pre>
</div></div><p>Trying to use nio transport url on the client side will
instantiate the regular TCP transport. For more information see the <a
shape="rect" href="nio-transport-reference.html">NIO Transport
Reference</a></p><h3 id="ConfiguringVersion5Transports-TheSSLTransport">The SSL
Transport</h3><p>This allows you to talk over TCP using SSL. For more
information see the <a shape="rect" href="ssl-transport-reference.html">SSL
Transport Reference</a></p><h3
id="ConfiguringVersion5Transports-TheNIOSSLTransport">The NIO SSL
Transport</h3><div class="confluence-information-macro
confluence-information-macro-information"><p
class="title">Availability</p><span class="aui-icon aui-icon-small
aui-iconfont-info confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>Available since
5.6</p></div></div><p>Implementing SSL transport over NIO. This allows you to
connect large number of SSL clients to a single broker instance. It's server
side transport-option
only</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"><broker>
+<pre class="brush: java; gutter: false; theme: Default"><broker>
...
<transportConnectors>
<transportConnector name="nio+ssl" uri="nio+ssl://0.0.0.0:61616"/>
@@ -101,8 +101,8 @@
...
</broker>
</pre>
-</div></div><p>Trying to use <code>nio+ssl</code> transport url on the client
side will instantiate the regular SSL transport.</p><h3
id="ConfiguringVersion5Transports-ThePeerTransport">The Peer
Transport</h3><p>The Peer transport provides a peer-to-peer network with
ActiveMQ. What actually happens is the peer transport uses the VM transport to
create and connect to a local embedded broker but which configures the embedded
broker to establish network connections to other peer embedded
brokers.</p><p>For more information see the <a shape="rect"
href="peer-transport-reference.html">Peer Transport Reference</a></p><h3
id="ConfiguringVersion5Transports-TheUDPTransport">The UDP
Transport</h3><p>This allows you to talk over UDP.</p><p>For more information
see the <a shape="rect" href="udp-transport-reference.html">UDP Transport
Reference</a></p><h3
id="ConfiguringVersion5Transports-TheMulticastTransport">The Multicast
Transport</h3><p>This allows you to talk over Multicast.</p><p>For more
information see the <a shape="rect"
href="multicast-transport-reference.html">Multicast Transport
Reference</a></p><h3
id="ConfiguringVersion5Transports-TheHTTPandHTTPSTransport">The HTTP and HTTPS
Transport</h3><p>This allows the ActiveMQ client and broker to tunnel over
HTTP. If the client is not JMS you might want to look at <a shape="rect"
href="rest.html">REST</a> or <a shape="rect" href="ajax.html">Ajax</a> support
instead.</p><p>For more information see the <a shape="rect"
href="http-and-https-transports-reference.html">HTTP and HTTPs Transports
Reference</a></p><h3
id="ConfiguringVersion5Transports-TheWebSocketsTransport">The WebSockets
Transport</h3><p>This transport uses the new HTML5 WebSockets to exchange
messages with the broker. For more information see the <a shape="rect"
href="websockets.html">WebSockets</a> Transport Reference</p><h3
id="ConfiguringVersion5Transports-TheStompTransport">The Stomp
Transport</h3><p>A plain text transport that can be used with many lan
guages. See <a shape="rect" href="stomp.html">Stomp</a> for more
details.</p><h2 id="ConfiguringVersion5Transports-GeneralPurposeURIs">General
Purpose URIs</h2><p>You can configure other features via the URI syntax as
follows...</p><h3
id="ConfiguringVersion5Transports-ConnectionConfigurationURI">Connection
Configuration URI</h3><p>Any Apache ActiveMQ JMS connection can be configured
using the URL or explicitly setting properties on the <a shape="rect"
class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnection.html">ActiveMQConnection</a>
or <a shape="rect" class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnectionFactory.html">ActiveMQConnectionFactory</a>
objects themselves.</p><p>For more information see <a shape="rect"
href="connection-configuration-uri.html">Connection Configuration
URI</a></p><h3 id="ConfiguringVersion5Transport
s-DestinationOptions">Destination Options</h3><p>You can configure various
consumer related options using <a shape="rect"
href="destination-options.html">Destination Options</a> which allow you to
configure destinations using URI syntax.</p><h3
id="ConfiguringVersion5Transports-BrokerConfigurationURI">Broker Configuration
URI</h3><p>You can use a <a shape="rect"
href="broker-configuration-uri.html">Broker Configuration URI</a> to configure
an embedded broker, either using the BrokerFactory helper class from Java or
using the activemq shell script. For more details see <a shape="rect"
href="run-broker.html">How to Run a Broker</a></p><h3
id="ConfiguringVersion5Transports-ConfiguringWireFormats">Configuring Wire
Formats</h3><p>Any transport which involves marshalling messages onto some kind
of network transport like TCP or UDP will typically use the <a shape="rect"
href="openwire.html">OpenWire</a> format. This is configurable to customize how
things appear on the wire.</p><p>For more
information see <a shape="rect"
href="configuring-wire-formats.html">Configuring Wire Formats</a></p><h2
id="ConfiguringVersion5Transports-HighLevelProtocolURIs">High Level Protocol
URIs</h2><p>The following higher level protocols can be configured via
URI</p><h3 id="ConfiguringVersion5Transports-TheFailoverTransport">The Failover
Transport</h3><p>The Failover transport layers reconnect logic on top of any of
the other transports. This is what used to be the Reliable transport in
ActiveMQ 3. Its configuration syntax allows you to specify any number of
composite URIs. The Failover transport randomly chooses one of the composite
URIs and attempts to establish a connection to it. If it does not succeed or if
it subsequently fails, a new connection is established to one of the other URIs
in the list.</p><p>For more information see the <a shape="rect"
href="failover-transport-reference.html">Failover Transport
Reference</a></p><h3 id="ConfiguringVersion5Transports-TheFanoutTransport">Th
e Fanout Transport</h3><p>The Fanout transport layers reconnect and replicate
logic on top of any of the other transports. It is used replicate commands to
multiple brokers.</p><p>For more information see the <a shape="rect"
href="fanout-transport-reference.html">Fanout Transport Reference</a></p><h2
id="ConfiguringVersion5Transports-UsingDiscovery">Using Discovery</h2><p>Often
when using transports like TCP you want to use <a shape="rect"
href="discovery.html">Discovery</a> to locate the available brokers. This is
different from using, say, <a shape="rect"
href="multicast-transport-reference.html">Multicast</a> - as the actual main
communication is over TCP but multicast is purely used to discover the location
of brokers.</p><h3 id="ConfiguringVersion5Transports-TheDiscoveryTransport">The
Discovery Transport</h3><p>The Discovery transport works just like the reliable
transport, except that it uses a discovery agent to locate the list of URIs to
connect to.</p><p>For more informatio
n see the <a shape="rect" href="discovery-transport-reference.html">Discovery
Transport Reference</a></p><h3
id="ConfiguringVersion5Transports-TheZeroConfTransport">The ZeroConf
Transport</h3><p>The ZeroConf transport provides <a shape="rect"
href="discovery.html">Discovery</a> and it works like the <a shape="rect"
href="discovery-transport-reference.html">Discovery Transport</a> but rather
than using our own multicast based discovery mechanism (which allows you to
configure the exact multicast address and port, etc.), the <a shape="rect"
href="zeroconf.html">ZeroConf</a> transport is used instead.</p><p>For more
information see the <a shape="rect"
href="zeroconf-transport-reference.html">ZeroConf Transport
Reference</a></p><h3
id="ConfiguringVersion5Transports-Serversideoptions">Server side
options</h3><p>There are a number of options that can be used for changing
behavior on the server for
the <strong><code>TransportConnector</code></strong> in the ActiveMQ
broker configurati
on. These are:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>property name</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><span style="color: red;">
<code>allowLinkStealing</code><br clear="none"></span></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>This is enabled for default for MQTT
transport.</p><p>Link Stealing is where the last of two or more connections
with the same id (clientID for JMS) is deemed the valid connection and the
older one is closed by the broker.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>discoveryURI</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="
1" rowspan="1" class="confluenceTd"><p>If set, the multicast discovery address
for client connections to find the broker.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>enableStatusMonitor</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will monitor connections to
determine if they are blocked.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>name</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The name of
the <strong><code>TransportConnector</code></strong>
instance.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>rebalanceClusterClients</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will automatically re-bal
ance clients across the cluster on changes of topology.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterClients</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>If enabled, will update client
connections (if they use the <strong><code>failover://</code></strong>
transport) of changes to the broker cluster.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>updateClusterClientsOnRemove</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will update clients if a broker
is removed from the cluster.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterFilter</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"
><p>Comma separated list of regular expressions. Brokers with a name matching
>the pattern will be included for client updates.</p></td></tr><tr><td
>colspan="1" rowspan="1" class="confluenceTd"><p><code>uri</code></p></td><td
>colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
>colspan="1" rowspan="1" class="confluenceTd"><p>The bind address for the
>transport.</p></td></tr></tbody></table></div><div
>class="confluence-information-macro
>confluence-information-macro-information"><span class="aui-icon
>aui-icon-small aui-iconfont-info
>confluence-information-macro-icon"></span><div
>class="confluence-information-macro-body"><p><strong>Note</strong>:
>properties in <span style="color: rgb(255,0,0);">red</span> are version 5.10
>(and higher) options only.</p></div></div><p>Example configuration:</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;"><broker>
+</div></div><p>Trying to use <code>nio+ssl</code> transport url on the client
side will instantiate the regular SSL transport.</p><h3
id="ConfiguringVersion5Transports-ThePeerTransport">The Peer
Transport</h3><p>The Peer transport provides a peer-to-peer network with
ActiveMQ. What actually happens is the peer transport uses the VM transport to
create and connect to a local embedded broker but which configures the embedded
broker to establish network connections to other peer embedded
brokers.</p><p>For more information see the <a shape="rect"
href="peer-transport-reference.html">Peer Transport Reference</a></p><h3
id="ConfiguringVersion5Transports-TheUDPTransport">The UDP
Transport</h3><p>This allows you to talk over UDP.</p><p>For more information
see the <a shape="rect" href="udp-transport-reference.html">UDP Transport
Reference</a></p><h3
id="ConfiguringVersion5Transports-TheMulticastTransport">The Multicast
Transport</h3><p>This allows you to talk over Multicast.</p><p>For more
information see the <a shape="rect"
href="multicast-transport-reference.html">Multicast Transport
Reference</a></p><h3
id="ConfiguringVersion5Transports-TheHTTPandHTTPSTransport">The HTTP and HTTPS
Transport</h3><p>This allows the ActiveMQ client and broker to tunnel over
HTTP. If the client is not JMS you might want to look at <a shape="rect"
href="rest.html">REST</a> or <a shape="rect" href="ajax.html">Ajax</a> support
instead.</p><p>For more information see the <a shape="rect"
href="http-and-https-transports-reference.html">HTTP and HTTPs Transports
Reference</a></p><h3
id="ConfiguringVersion5Transports-TheWebSocketsTransport">The WebSockets
Transport</h3><p>This transport uses the new HTML5 WebSockets to exchange
messages with the broker. For more information see the <a shape="rect"
href="websockets.html">WebSockets</a> Transport Reference</p><h3
id="ConfiguringVersion5Transports-TheStompTransport">The Stomp
Transport</h3><p>A plain text transport that can be used with many lan
guages. See <a shape="rect" href="stomp.html">Stomp</a> for more
details.</p><h2 id="ConfiguringVersion5Transports-GeneralPurposeURIs">General
Purpose URIs</h2><p>You can configure other features via the URI syntax as
follows...</p><h3
id="ConfiguringVersion5Transports-ConnectionConfigurationURI">Connection
Configuration URI</h3><p>Any Apache ActiveMQ JMS connection can be configured
using the URL or explicitly setting properties on the <a shape="rect"
class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnection.html">ActiveMQConnection</a>
or <a shape="rect" class="external-link"
href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/ActiveMQConnectionFactory.html">ActiveMQConnectionFactory</a>
objects themselves.</p><p>For more information see <a shape="rect"
href="connection-configuration-uri.html">Connection Configuration
URI</a></p><h3 id="ConfiguringVersion5Transport
s-DestinationOptions">Destination Options</h3><p>You can configure various
consumer related options using <a shape="rect"
href="destination-options.html">Destination Options</a> which allow you to
configure destinations using URI syntax.</p><h3
id="ConfiguringVersion5Transports-BrokerConfigurationURI">Broker Configuration
URI</h3><p>You can use a <a shape="rect"
href="broker-configuration-uri.html">Broker Configuration URI</a> to configure
an embedded broker, either using the BrokerFactory helper class from Java or
using the activemq shell script. For more details see <a shape="rect"
href="run-broker.html">How to Run a Broker</a></p><h3
id="ConfiguringVersion5Transports-ConfiguringWireFormats">Configuring Wire
Formats</h3><p>Any transport which involves marshalling messages onto some kind
of network transport like TCP or UDP will typically use the <a shape="rect"
href="openwire.html">OpenWire</a> format. This is configurable to customize how
things appear on the wire.</p><p>For more
information see <a shape="rect"
href="configuring-wire-formats.html">Configuring Wire Formats</a></p><h2
id="ConfiguringVersion5Transports-HighLevelProtocolURIs">High Level Protocol
URIs</h2><p>The following higher level protocols can be configured via
URI</p><h3 id="ConfiguringVersion5Transports-TheFailoverTransport">The Failover
Transport</h3><p>The Failover transport layers reconnect logic on top of any of
the other transports. This is what used to be the Reliable transport in
ActiveMQ 3. Its configuration syntax allows you to specify any number of
composite URIs. The Failover transport randomly chooses one of the composite
URIs and attempts to establish a connection to it. If it does not succeed or if
it subsequently fails, a new connection is established to one of the other URIs
in the list.</p><p>For more information see the <a shape="rect"
href="failover-transport-reference.html">Failover Transport
Reference</a></p><h3 id="ConfiguringVersion5Transports-TheFanoutTransport">Th
e Fanout Transport</h3><p>The Fanout transport layers reconnect and replicate
logic on top of any of the other transports. It is used replicate commands to
multiple brokers.</p><p>For more information see the <a shape="rect"
href="fanout-transport-reference.html">Fanout Transport Reference</a></p><h2
id="ConfiguringVersion5Transports-UsingDiscovery">Using Discovery</h2><p>Often
when using transports like TCP you want to use <a shape="rect"
href="discovery.html">Discovery</a> to locate the available brokers. This is
different from using, say, <a shape="rect"
href="multicast-transport-reference.html">Multicast</a> - as the actual main
communication is over TCP but multicast is purely used to discover the location
of brokers.</p><h3 id="ConfiguringVersion5Transports-TheDiscoveryTransport">The
Discovery Transport</h3><p>The Discovery transport works just like the reliable
transport, except that it uses a discovery agent to locate the list of URIs to
connect to.</p><p>For more informatio
n see the <a shape="rect" href="discovery-transport-reference.html">Discovery
Transport Reference</a></p><h3
id="ConfiguringVersion5Transports-TheZeroConfTransport">The ZeroConf
Transport</h3><p>The ZeroConf transport provides <a shape="rect"
href="discovery.html">Discovery</a> and it works like the <a shape="rect"
href="discovery-transport-reference.html">Discovery Transport</a> but rather
than using our own multicast based discovery mechanism (which allows you to
configure the exact multicast address and port, etc.), the <a shape="rect"
href="zeroconf.html">ZeroConf</a> transport is used instead.</p><p>For more
information see the <a shape="rect"
href="zeroconf-transport-reference.html">ZeroConf Transport
Reference</a></p><h3
id="ConfiguringVersion5Transports-Serversideoptions">Server side
options</h3><p>There are a number of options that can be used for changing
behavior on the server for
the <strong><code>TransportConnector</code></strong> in the ActiveMQ
broker configurati
on. These are:</p><div class="table-wrap"><table
class="confluenceTable"><colgroup span="1"><col span="1"><col span="1"><col
span="1"></colgroup><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>property name</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><span style="color: red;"> <span
style="color: rgb(0,0,0);"><code>allowLinkStealing</code></span><br
clear="none"></span></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>This is enabled for default for MQTT
transport.</p><p>Link Stealing is where the last of two or more connections
with the same id (clientID for JMS) is deemed the valid connection and the
older one is closed by the broker.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>discove
ryURI</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If set, the multicast discovery address for client
connections to find the broker.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>enableStatusMonitor</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will monitor connections to
determine if they are blocked.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>name</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The name of
the <strong><code>TransportConnector</code></strong>
instance.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>rebalanceClusterClients</code></p></td><td
colspan="1" rowspan="1" class="confluenc
eTd"><p><code>false</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Will automatically re-balance clients across the
cluster on changes of topology.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterClients</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>If enabled, will update client
connections (if they use the <strong><code>failover://</code></strong>
transport) of changes to the broker cluster.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p><code>updateClusterClientsOnRemove</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Will update clients if a broker
is removed from the cluster.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>updateClusterFilter</code></p></td><td colspan="1
" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Comma separated list of regular
expressions. Brokers with a name matching the pattern will be included for
client updates.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>uri</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The bind address for the
transport.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p
class="p1"><code><span class="s1">warnOnRemoteClose</span></code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td
colspan="1" rowspan="1" class="confluenceTd">If set, issue a WARN log event if
a client closes its connection in an abrupt manner, one example being a
load-balancer health check. For a regular JMS client this WARN message is
indicative of a client going away without a connection
.close (5.16)</td></tr></tbody></table></div><p>Example configuration:</p><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default"><broker>
   <!-- ... -->
   <transportConnectors>