You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by dk...@apache.org on 2017/12/14 14:48:26 UTC

[02/51] [abbrv] [partial] activemq-web git commit: Add body.storage type

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/jmx.xml
----------------------------------------------------------------------
diff --git a/jmx.xml b/jmx.xml
index d2520b1..c1048d7 100644
--- a/jmx.xml
+++ b/jmx.xml
@@ -1,37 +1,26 @@
-<div class="wiki-content maincontent"><h2 id="JMX-JMX">JMX</h2><p>Apache ActiveMQ has extensive support for JMX to allow you to monitor and control the behavior of the broker via the <a shape="rect" class="external-link" href="http://activemq.apache.org/maven/apidocs/org/apache/activemq/broker/jmx/package-summary.html">JMX MBeans</a>.</p><h3 id="JMX-UsingJMXtomonitorApacheActiveMQ">Using JMX to monitor Apache ActiveMQ</h3><p>You can enable/disable JMX support as follows...</p><p>1. <a shape="rect" href="run-broker.xml">Run a broker</a> setting the broker property useJmx to true (enabled by default) i.e.</p><p>For xbean configuration</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;broker useJmx=&quot;true&quot; brokerName=&quot;BROKER1&quot;&gt;
+<div class="wiki-content maincontent"><h2>JMX</h2><p>Apache ActiveMQ has extensive support for JMX to allow you to monitor and control the behavior of the broker via the <a shape="rect" href="http://activemq.apache.org/maven/apidocs/org/apache/activemq/broker/jmx/package-summary.html">JMX MBeans</a>.</p><h3>Using JMX to monitor Apache ActiveMQ</h3><p>You can enable/disable JMX support as follows...</p><p>1. <link><page ri:content-title="Run Broker"></page><plain-text-link-body>Run a broker</plain-text-link-body></link> setting the broker property useJmx to true (enabled by default) i.e.</p><p>For xbean configuration</p><structured-macro ac:macro-id="ffdf8aca-7895-4a18-91a1-5d432b672168" ac:name="code" ac:schema-version="1"><plain-text-body>&lt;broker useJmx="true" brokerName="BROKER1"&gt;
 ...
 &lt;/broker&gt;
-]]></script>
-</div></div><p>2. Run a JMX console</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[$ jconsole ]]></script>
-</div></div><p>3. The ActiveMQ broker should appear in the list of local connections, if you are running JConsole on the same host as ActiveMQ.</p><p><strong style="color: rgb(102,0,51);font-size: 16.0px;"><br clear="none"></strong></p><p><strong style="color: rgb(102,0,51);font-size: 16.0px;">JMX remote access</strong></p><p>Remote connections to JMX are not enabled by default in the activemq.xml for security reasons. Please refer to&#160;<a shape="rect" class="external-link" href="http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html" rel="nofollow">Java Management guide</a>&#160;to configure the broker for remote management.</p><p>&#160;</p><p><span style="line-height: 1.4285715;">Using the Apache ActiveMQ version on OS X it appears as follows:</span></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="jmx.data/activemq-jmx.png" data-image-src="/confluence/download/attachments/35976/activemq-jmx.png?version=1&amp;
 modificationDate=1181607318000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="4495" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="activemq-jmx.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="35976" data-linked-resource-container-version="39"></span><br clear="none"> &#160;</p><h3 id="JMX-ActiveMQMBeansReference">ActiveMQ MBeans Reference</h3><p>For additional references provided below is a brief hierarchy of the mbeans and a listing of the properties, attributes, and operations of each mbeans.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>&#160;Mbean Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Properties / ObjectName&#160;</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Attributes&#160;</p></th><th colsp
 an="1" rowspan="1" class="confluenceTh"><p>Operations&#160;</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;Broker</p></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;broker identifier&gt;</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>BrokerId</li><li>TotalEnqueueCount</li><li>TotalDequeueCount</li><li>TotalConsumerCount</li><li>TotalMessageCount</li><li>TotalConnectionsCount</li><li>TotalConsumerCount</li><li>TotalProducerCount</li><li>MemoryLimit</li><li>MemoryPercentUsage</li><li>StoreLimit</li><li>StorePercentUsage</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>start</li><li>stop</li><li>terminateJVM</li><li>resetStatistics</li><li>gc</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;Destination</p></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><strong>type</strong>=Broker</li><
 li><strong>brokerName</strong>=&lt;name of broker&gt;</li><li><strong>destinationType</strong>=Queue|Topic</li><li><strong>destinationName</strong>=&lt;name&gt;</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>AverageEnqueueTime</li><li><span style="line-height: 1.4285715;">ConsumerCount</span></li><li><span style="line-height: 1.4285715;">DequeueCount</span></li><li>EnqueueCount</li><li>ExpiredCount</li><li>InFlightCount</li><li><span style="line-height: 1.4285715;">MemoryLimit</span></li><li>MemoryPercentUsage</li><li>Name</li><li><span style="line-height: 1.4285715;">QueueSize (queues only)</span></li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>browseMessages</li><li>gc</li><li>purge</li><li>resetStatistics</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;NetworkConnector</p></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;
 name of broker&gt;</li><li><strong>connector</strong>=networkConnectors</li><li><strong>networkConnectorName</strong>=&lt;connector identifier&gt;</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>Name</li><li>Duplex</li><li>DynamicOnly</li><li>BridgeTempDestinations</li><li>ConduitSubscriptions</li><li>DecreaseNetworkConsumerPriority</li><li>DispatchAsync</li><li>DynamicOnly</li><li>NetworkTTL</li><li>Password</li><li>PrefetchSize</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>start</li><li>stop</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;Connector</p></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;name of broker&gt;</li><li><strong>connector</strong>=clientConnectors</li><li><strong>ConnectorName</strong>=&lt;connector identifier&gt;</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>StatisticsEnabl
 ed</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>start</li><li>stop</li><li>resetStatistics</li><li>enableStatistics</li><li>disableStatistics</li><li>connectionCount</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;Connection</p></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;name of broker&gt;</li><li><strong>connectionViewType</strong>=clientId</li><li><strong>connectionName</strong>=&lt;connection identifier&gt;</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>DispatchQueueSize</li><li>Active</li><li>Blocked</li><li>Connected</li><li>Slow</li><li>Consumers</li><li>Producers</li><li>RemoteAddress</li><li>UserName</li><li>ClientId</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>start</li><li>stop</li><li>resetStatistics</li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160
 ; PersistenceAdapter</p></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;broker name&gt;</li><li><strong>Service</strong>=PersistenceAdapter</li><li><strong>InstanceName</strong>=&lt;adapter identifier&gt;</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>Name</li><li>Size</li><li>Data</li><li>Transactions</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;Health</p></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;broker name&gt;</li><li><strong>Service</strong>=Health</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>CurrentStatus</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><ul><li>health</li></ul></td></tr></tbody></table></div><p>Command line utilities are also av
 ailable to let you monitor ActiveMQ. Refer to <a shape="rect" href="activemq-command-line-tools-reference.xml">ActiveMQ Command Line Tools Reference</a> for usage information.</p><p>JMX API is also exposed via <a shape="rect" href="rest.xml#REST-RestManagement">REST management API </a></p><h3 id="JMX-PasswordProtectingtheJMXConnector">Password Protecting the JMX Connector</h3><p>(For Java 1.5+)</p><p>1. Make sure JMX is enabled, but tell ActiveMQ <strong>not</strong> create its own connector so that it will use the default JVM JMX connector.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;broker xmlns=&quot;http://activemq.org/config/1.0&quot; brokerName=&quot;localhost&quot;useJmx=&quot;true&quot;&gt;
+</plain-text-body></structured-macro><p>2. Run a JMX console</p><structured-macro ac:macro-id="171443e0-69a0-46f4-b507-386689ea89ad" ac:name="code" ac:schema-version="1"><plain-text-body>$ jconsole </plain-text-body></structured-macro><p>3. The ActiveMQ broker should appear in the list of local connections, if you are running JConsole on the same host as ActiveMQ.</p><p><strong style="color: rgb(102,0,51);font-size: 16.0px;"><br clear="none"></strong></p><p><strong style="color: rgb(102,0,51);font-size: 16.0px;">JMX remote access</strong></p><p>Remote connections to JMX are not enabled by default in the activemq.xml for security reasons. Please refer to&#160;<a shape="rect" href="http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html">Java Management guide</a>&#160;to configure the broker for remote management.</p><p>&#160;</p><p><span style="line-height: 1.4285715;">Using the Apache ActiveMQ version on OS X it appears as follows:</span></p><p><image><attachment
  ri:filename="activemq-jmx.png"></attachment></image><br clear="none"> &#160;</p><h3>ActiveMQ MBeans Reference</h3><p>For additional references provided below is a brief hierarchy of the mbeans and a listing of the properties, attributes, and operations of each mbeans.</p><table><tbody><tr><th colspan="1" rowspan="1"><p>&#160;Mbean Type</p></th><th colspan="1" rowspan="1"><p>Properties / ObjectName&#160;</p></th><th colspan="1" rowspan="1"><p>Attributes&#160;</p></th><th colspan="1" rowspan="1"><p>Operations&#160;</p></th></tr><tr><td colspan="1" rowspan="1"><p>&#160;Broker</p></td><td colspan="1" rowspan="1"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;broker identifier&gt;</li></ul></td><td colspan="1" rowspan="1"><ul><li>BrokerId</li><li>TotalEnqueueCount</li><li>TotalDequeueCount</li><li>TotalConsumerCount</li><li>TotalMessageCount</li><li>TotalConnectionsCount</li><li>TotalConsumerCount</li><li>TotalProducerCount</li><li>MemoryLimit</li><li>Memor
 yPercentUsage</li><li>StoreLimit</li><li>StorePercentUsage</li></ul></td><td colspan="1" rowspan="1"><ul><li>start</li><li>stop</li><li>terminateJVM</li><li>resetStatistics</li><li>gc</li></ul></td></tr><tr><td colspan="1" rowspan="1"><p>&#160;Destination</p></td><td colspan="1" rowspan="1"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;name of broker&gt;</li><li><strong>destinationType</strong>=Queue|Topic</li><li><strong>destinationName</strong>=&lt;name&gt;</li></ul></td><td colspan="1" rowspan="1"><ul><li>AverageEnqueueTime</li><li><span style="line-height: 1.4285715;">ConsumerCount</span></li><li><span style="line-height: 1.4285715;">DequeueCount</span></li><li>EnqueueCount</li><li>ExpiredCount</li><li>InFlightCount</li><li><span style="line-height: 1.4285715;">MemoryLimit</span></li><li>MemoryPercentUsage</li><li>Name</li><li><span style="line-height: 1.4285715;">QueueSize (queues only)</span></li></ul></td><td colspan="1" rowspan="1"><ul><li>brow
 seMessages</li><li>gc</li><li>purge</li><li>resetStatistics</li></ul></td></tr><tr><td colspan="1" rowspan="1"><p>&#160;NetworkConnector</p></td><td colspan="1" rowspan="1"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;name of broker&gt;</li><li><strong>connector</strong>=networkConnectors</li><li><strong>networkConnectorName</strong>=&lt;connector identifier&gt;</li></ul></td><td colspan="1" rowspan="1"><ul><li>Name</li><li>Duplex</li><li>DynamicOnly</li><li>BridgeTempDestinations</li><li>ConduitSubscriptions</li><li>DecreaseNetworkConsumerPriority</li><li>DispatchAsync</li><li>DynamicOnly</li><li>NetworkTTL</li><li>Password</li><li>PrefetchSize</li></ul></td><td colspan="1" rowspan="1"><ul><li>start</li><li>stop</li></ul></td></tr><tr><td colspan="1" rowspan="1"><p>&#160;Connector</p></td><td colspan="1" rowspan="1"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;name of broker&gt;</li><li><strong>connector</strong>=clien
 tConnectors</li><li><strong>ConnectorName</strong>=&lt;connector identifier&gt;</li></ul></td><td colspan="1" rowspan="1"><ul><li>StatisticsEnabled</li></ul></td><td colspan="1" rowspan="1"><ul><li>start</li><li>stop</li><li>resetStatistics</li><li>enableStatistics</li><li>disableStatistics</li><li>connectionCount</li></ul></td></tr><tr><td colspan="1" rowspan="1"><p>&#160;Connection</p></td><td colspan="1" rowspan="1"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;name of broker&gt;</li><li><strong>connectionViewType</strong>=clientId</li><li><strong>connectionName</strong>=&lt;connection identifier&gt;</li></ul></td><td colspan="1" rowspan="1"><ul><li>DispatchQueueSize</li><li>Active</li><li>Blocked</li><li>Connected</li><li>Slow</li><li>Consumers</li><li>Producers</li><li>RemoteAddress</li><li>UserName</li><li>ClientId</li></ul></td><td colspan="1" rowspan="1"><ul><li>start</li><li>stop</li><li>resetStatistics</li></ul></td></tr><tr><td colspan="1" r
 owspan="1"><p>&#160; PersistenceAdapter</p></td><td colspan="1" rowspan="1"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;broker name&gt;</li><li><strong>Service</strong>=PersistenceAdapter</li><li><strong>InstanceName</strong>=&lt;adapter identifier&gt;</li></ul></td><td colspan="1" rowspan="1"><ul><li>Name</li><li>Size</li><li>Data</li><li>Transactions</li></ul></td><td colspan="1" rowspan="1"><p>&#160;</p></td></tr><tr><td colspan="1" rowspan="1"><p>&#160;Health</p></td><td colspan="1" rowspan="1"><ul><li><strong>type</strong>=Broker</li><li><strong>brokerName</strong>=&lt;broker name&gt;</li><li><strong>Service</strong>=Health</li></ul></td><td colspan="1" rowspan="1"><ul><li>CurrentStatus</li></ul></td><td colspan="1" rowspan="1"><ul><li>health</li></ul></td></tr></tbody></table><p>Command line utilities are also available to let you monitor ActiveMQ. Refer to <link><page ri:content-title="ActiveMQ Command Line Tools Reference"></page></link> for 
 usage information.</p><p>JMX API is also exposed via <link ac:anchor="Rest Management"><page ri:content-title="REST"></page><plain-text-link-body>REST management API </plain-text-link-body></link></p><h3>Password Protecting the JMX Connector</h3><p>(For Java 1.5+)</p><p>1. Make sure JMX is enabled, but tell ActiveMQ <strong>not</strong> create its own connector so that it will use the default JVM JMX connector.</p><structured-macro ac:macro-id="8464c71e-56cc-4fb0-aec3-7d93bfb2ffe2" ac:name="code" ac:schema-version="1"><parameter ac:name="">xml</parameter><plain-text-body>&lt;broker xmlns="http://activemq.org/config/1.0" brokerName="localhost"useJmx="true"&gt;
 
   ...
 
   &lt;managementContext&gt;
-     &lt;managementContext createConnector=&quot;false&quot;/&gt;
+     &lt;managementContext createConnector="false"/&gt;
   &lt;/managementContext&gt;
 
   ...
 
 &lt;/broker&gt;
-]]></script>
-</div></div><p>2. Create access and password files</p><p>conf/jmx.access:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[# The &quot;monitorRole&quot; role has readonly access.
-# The &quot;controlRole&quot; role has readwrite access.
+</plain-text-body></structured-macro><p>2. Create access and password files</p><p>conf/jmx.access:</p><structured-macro ac:macro-id="f5545277-e779-4925-8de7-bf2a9c5b5fde" ac:name="code" ac:schema-version="1"><plain-text-body># The "monitorRole" role has readonly access.
+# The "controlRole" role has readwrite access.
 monitorRole readonly
 controlRole readwrite
-]]></script>
-</div></div><p>conf/jmx.password:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[# The &quot;monitorRole&quot; role has password &quot;abc123&quot;.
-# The &quot;controlRole&quot; role has password &quot;abcd1234&quot;.
+</plain-text-body></structured-macro><p>conf/jmx.password:</p><structured-macro ac:macro-id="b0ea5924-d5f5-4ce1-98d3-0aebdcde6ff3" ac:name="code" ac:schema-version="1"><plain-text-body># The "monitorRole" role has password "abc123".
+# The "controlRole" role has password "abcd1234".
 monitorRole abc123
 controlRole abcd1234
-]]></script>
-</div></div><p>(Make sure both files are not world readable - more info can be find <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#auth" rel="nofollow">here</a> to protect files)</p><p>For more details you can see the <a shape="rect" class="external-link" href="http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html">Monitoring Tomcat Document</a></p><p>3. Modify the "activemq" startup script (in bin) to enable the Java 1.5+ JMX connector</p><p>Find the "ACTIVEMQ_SUNJMX_START=" line and change it too the following: (note that in previous versions of ActiveMQ this property was called SUNJMX in some scripts. &#160;As of v5.12.0 all scripts use ACTIVEMQ_SUNJMX_START):</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[1. Windows
+</plain-text-body></structured-macro><p>(Make sure both files are not world readable - more info can be find <a shape="rect" href="http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#auth">here</a> to protect files)</p><p>For more details you can see the <a shape="rect" href="http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html">Monitoring Tomcat Document</a></p><p>3. Modify the "activemq" startup script (in bin) to enable the Java 1.5+ JMX connector</p><p>Find the "ACTIVEMQ_SUNJMX_START=" line and change it too the following: (note that in previous versions of ActiveMQ this property was called SUNJMX in some scripts. &#160;As of v5.12.0 all scripts use ACTIVEMQ_SUNJMX_START):</p><structured-macro ac:macro-id="54f2c4ab-bea5-48aa-b626-9084c0f0c664" ac:name="code" ac:schema-version="1"><plain-text-body>1. Windows
 
   ACTIVEMQ_SUNJMX_START=-Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.ssl=false \
     -Dcom.sun.management.jmxremote.password.file=%ACTIVEMQ_BASE%/conf/jmx.password \
@@ -39,12 +28,10 @@ controlRole abcd1234
 
 2. Unix
 
-  ACTIVEMQ_SUNJMX_START=&quot;-Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.ssl=false \
+  ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.ssl=false \
     -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_BASE}/conf/jmx.password \
-    -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_BASE}/conf/jmx.access&quot;
-]]></script>
-</div></div><p>This could be set in /etc/activemq.conf instead (if you have root access):</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[1. Windows
+    -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_BASE}/conf/jmx.access"
+</plain-text-body></structured-macro><p>This could be set in /etc/activemq.conf instead (if you have root access):</p><structured-macro ac:macro-id="2e3f12e0-d7a0-413f-98b2-efdc6d92f08f" ac:name="code" ac:schema-version="1"><plain-text-body>1. Windows
 
 ACTIVEMQ_HOME=DRIVE_LETTER:/where/ActiveMQ/is/installed
 ACTIVEMQ_BASE=%ACTIVEMQ_HOME%
@@ -56,18 +43,13 @@ ACTIVEMQ_SUNJMX_START=-Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.managem
 
 ACTIVEMQ_HOME=DRIVE_LETTER:/where/ActiveMQ/is/installed
 ACTIVEMQ_BASE=${ACTIVEMQ_HOME}
-ACTIVEMQ_SUNJMX_START=&quot;-Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.ssl=false \
+ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=1616 -Dcom.sun.management.jmxremote.ssl=false \
     -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_BASE}/conf/jmx.password \
-    -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_BASE}/conf/jmx.access&quot;
-]]></script>
-</div></div><p>4. Start ActiveMQ</p><p>You should be able to connect to JMX on the JMX URL</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[service:jmx:rmi:///jndi/rmi://&lt;your hostname&gt;:1616/jmxrmi
-]]></script>
-</div></div><p>And you will be forced to login.</p><h3 id="JMX-SelectiveMBeanregistration">Selective MBean registration</h3><p>In situations where you need to scale your broker to large number of connections, destinations and consumers it can become very expensive to keep JMX MBeans for all those objects. Instead of turning off JMX completely, starting with 5.12.0, you can selectively suppress registration of some types of MBeans and thus help your broker scale, while still having a basic view of the broker state.</p><p>For example, the following configuration will exclude all dynamic producers, consumers, connections and advisory topics from registering their MBeans</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;managementContext&gt;
-&lt;managementContext 
-   suppressMBean=&quot;endpoint=dynamicProducer,endpoint=Consumer,connectionName=*,destinationName=ActiveMQ.Advisory.*&quot;
+    -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_BASE}/conf/jmx.access"
+</plain-text-body></structured-macro><p>4. Start ActiveMQ</p><p>You should be able to connect to JMX on the JMX URL</p><structured-macro ac:macro-id="5703fa7f-962a-4044-87c8-41d1d828d15c" ac:name="code" ac:schema-version="1"><plain-text-body>service:jmx:rmi:///jndi/rmi://&lt;your hostname&gt;:1616/jmxrmi
+</plain-text-body></structured-macro><p>And you will be forced to login.</p><h3>Selective MBean registration</h3><p>In situations where you need to scale your broker to large number of connections, destinations and consumers it can become very expensive to keep JMX MBeans for all those objects. Instead of turning off JMX completely, starting with 5.12.0, you can selectively suppress registration of some types of MBeans and thus help your broker scale, while still having a basic view of the broker state.</p><p>For example, the following configuration will exclude all dynamic producers, consumers, connections and advisory topics from registering their MBeans</p><structured-macro ac:macro-id="72278916-ebd3-4827-b0d7-89db4f39b1be" ac:name="code" ac:schema-version="1"><parameter ac:name="language">xml</parameter><plain-text-body>&lt;managementContext&gt;
+&lt;managementContext&#160;
+   suppressMBean="endpoint=dynamicProducer,endpoint=Consumer,connectionName=*,destinationName=ActiveMQ.Advisory.*"
 /&gt;
-&lt;/managementContext&gt;]]></script>
-</div></div><p>&#160;</p><h4 id="JMX-ManagementContextPropertiesReference">ManagementContext Properties Reference</h4><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 Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>useMBeanServer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If true then it avoids creating a new MBean server if a MBeanServer has already been created in the JVM</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>jmxDomainName</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>org.apache.activemq</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The jmx domain that all objects names will use</p></td></tr><tr><
 td colspan="1" rowspan="1" class="confluenceTd"><p>createMBeanServer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If we should create the MBeanServer is none is found.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>createConnector</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(119,119,119);"><span style="color: rgb(0,0,0);">Please refer to</span>&#160;</span><a shape="rect" class="external-link" href="http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html" rel="nofollow">Java Management guide</a><span style="color: rgb(119,119,119);">&#160;<span style="color: rgb(0,0,0);">to configure the server for remote management and lock down the endpoint serialisation with an appropriate <a shape="rect" class="external-link" href="http://openjdk.java.net/jeps/290" rel="no
 follow"> jdk.serialFilter</a></span></span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>connectorPort</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>1099</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The port that the JMX connector will use</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>connectorHost</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>localhost</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The host that the JMX connector and RMI server (if rmiServerPort&gt;0) will use</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>rmiServerPort</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The RMI server port, handy if port usage needs to be restricted behind a firewall</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>connectorPath</p></td><td colspan="1" rowspan="1" class
 ="confluenceTd"><p>/jmxrmi</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The path that JMX connector will be registered under</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>findTigerMBeanServer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Enables/disables the searching for the Java 5 platform MBeanServer</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>suppressMBean</p></td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" class="confluenceTd">List of MBean name patters to ignore</td></tr></tbody></table></div></div>
+&lt;/managementContext&gt;</plain-text-body></structured-macro><p>&#160;</p><h4>ManagementContext Properties Reference</h4><table><tbody><tr><th colspan="1" rowspan="1"><p>Property Name</p></th><th colspan="1" rowspan="1"><p>Default Value</p></th><th colspan="1" rowspan="1"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1"><p>useMBeanServer</p></td><td colspan="1" rowspan="1"><p>true</p></td><td colspan="1" rowspan="1"><p>If true then it avoids creating a new MBean server if a MBeanServer has already been created in the JVM</p></td></tr><tr><td colspan="1" rowspan="1"><p>jmxDomainName</p></td><td colspan="1" rowspan="1"><p>org.apache.activemq</p></td><td colspan="1" rowspan="1"><p>The jmx domain that all objects names will use</p></td></tr><tr><td colspan="1" rowspan="1"><p>createMBeanServer</p></td><td colspan="1" rowspan="1"><p>true</p></td><td colspan="1" rowspan="1"><p>If we should create the MBeanServer is none is found.</p></td></tr><tr><td colspan="1" rowspan="1"><p
 >createConnector</p></td><td colspan="1" rowspan="1"><p>false</p></td><td colspan="1" rowspan="1"><p><span style="color: rgb(119,119,119);"><span style="color: rgb(0,0,0);">Please refer to</span>&#160;</span><a shape="rect" href="http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html">Java Management guide</a><span style="color: rgb(119,119,119);">&#160;<span style="color: rgb(0,0,0);">to configure the server for remote management and lock down the endpoint serialisation with an appropriate <a shape="rect" href="http://openjdk.java.net/jeps/290"> jdk.serialFilter</a></span></span></p></td></tr><tr><td colspan="1" rowspan="1"><p>connectorPort</p></td><td colspan="1" rowspan="1"><p>1099</p></td><td colspan="1" rowspan="1"><p>The port that the JMX connector will use</p></td></tr><tr><td colspan="1" rowspan="1"><p>connectorHost</p></td><td colspan="1" rowspan="1"><p>localhost</p></td><td colspan="1" rowspan="1"><p>The host that the JMX connector and RMI server (if r
 miServerPort&gt;0) will use</p></td></tr><tr><td colspan="1" rowspan="1"><p>rmiServerPort</p></td><td colspan="1" rowspan="1"><p>0</p></td><td colspan="1" rowspan="1"><p>The RMI server port, handy if port usage needs to be restricted behind a firewall</p></td></tr><tr><td colspan="1" rowspan="1"><p>connectorPath</p></td><td colspan="1" rowspan="1"><p>/jmxrmi</p></td><td colspan="1" rowspan="1"><p>The path that JMX connector will be registered under</p></td></tr><tr><td colspan="1" rowspan="1"><p>findTigerMBeanServer</p></td><td colspan="1" rowspan="1"><p>true</p></td><td colspan="1" rowspan="1"><p>Enables/disables the searching for the Java 5 platform MBeanServer</p></td></tr><tr><td colspan="1" rowspan="1"><p>suppressMBean</p></td><td colspan="1" rowspan="1">&#160;</td><td colspan="1" rowspan="1">List of MBean name patters to ignore</td></tr></tbody></table></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/jndi-support.xml
----------------------------------------------------------------------
diff --git a/jndi-support.xml b/jndi-support.xml
index 9514884..68bd0e6 100644
--- a/jndi-support.xml
+++ b/jndi-support.xml
@@ -1,4 +1,4 @@
-<div class="wiki-content maincontent"><p>ActiveMQ will work with any JNDI provider capable of storing Java objects. However it is common to require a JNDI initial context to be able to run many JMS example programs, like <a shape="rect" class="external-link" href="http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/jms_tutorialTOC.html" rel="nofollow">Sun's JMS tutorial.</a></p><p>So we provide a simple JNDI&#160;<strong><code>InitialContextFactory</code></strong> which can be used to lookup JMS connection factory objects as well as Destination objects. For example if you place this <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-unit-tests/src/test/resources/jndi.properties">jndi.properties</a> file on your classpath, you can look inside the&#160;<strong><code>InitialContext</code></strong> and lookup&#160;<strong><code>ConnectionFactory</code></strong> objects and&#160;<strong><code>Destinations</code></strong> etc.</p><plain
 -text-body>java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
+<div class="wiki-content maincontent"><p>ActiveMQ will work with any JNDI provider capable of storing Java objects. However it is common to require a JNDI initial context to be able to run many JMS example programs, like <a shape="rect" href="http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/jms_tutorialTOC.html">Sun's JMS tutorial.</a></p><p>So we provide a simple JNDI&#160;<strong><code>InitialContextFactory</code></strong> which can be used to lookup JMS connection factory objects as well as Destination objects. For example if you place this <a shape="rect" href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-unit-tests/src/test/resources/jndi.properties">jndi.properties</a> file on your classpath, you can look inside the&#160;<strong><code>InitialContext</code></strong> and lookup&#160;<strong><code>ConnectionFactory</code></strong> objects and&#160;<strong><code>Destinations</code></strong> etc.</p><plain-text-body>java.naming.factory.initial = org.apache.activem
 q.jndi.ActiveMQInitialContextFactory
 
 # Use the following property to configure the default connector
 java.naming.provider.url = vm://localhost
@@ -13,7 +13,7 @@ queue.MyQueue = example.MyQueue
 
 # Register some topics in JNDI using the form:
 #   topic.[jndiName] = [physicalName]
-topic.MyTopic = example.MyTopic</plain-text-body><p>You can edit the&#160;<strong><code>jndi.properties</code></strong> file to configure the <strong><code>ActiveMQConnectionFactory</code></strong>'s properties such as&#160;<strong><code>brokerURL</code></strong> and whether or not there should be an embedded broker etc. See <a shape="rect" href="how-do-i-embed-a-broker-inside-a-connection.xml">how to embed a broker in a connection</a> for more details.</p><h3 id="JNDISupport-ActiveMQJNDITutorial">ActiveMQ JNDI Tutorial</h3><p>This is a quick one page tutorial on how to setup and use JNDI to create a connection to ActiveMQ. The first thing is ActiveMQ does not provide a full JNDI server. This means JMS clients need to use properties files to create a JNDI <strong><code>IntialContextFactory</code></strong>. If you need an example properties file, you can look the source distribution <a shape="rect" class="external-link" href="https://github.com/apache/activemq/blob/master/activemq-un
 it-tests/src/test/resources/jndi.properties" rel="nofollow">https://github.com/apache/activemq/blob/master/activemq-unit-tests/src/test/resources/jndi.properties</a>. Before we proceed, here are the properties.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>java.naming.factory.initial</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.activemq.jndi.ActiveMQInitialContextFactory</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>java.naming.provider.url</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>tcp://hostname:61616</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>topic.MyTopic</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p
 ><code>example.MyTopic</code></p></td></tr></tbody></table></div><p>Make sure to add&#160;<strong><code>activemq-<em>&lt;version&gt;</em>.jar</code></strong> and&#160;<strong><code>spring-1.x.jar</code></strong> to your classpath. If the libraries are not in the classpath, you will get a&#160;<strong><code>ClassNotFoundException</code></strong> at runtime. If you get <strong><code>ClassNotFoundException</code></strong>, try printing out the classpath and check it is present. You can also run ActiveMQ with&#160;<strong><code>-verbose</code></strong> option to verify the jar was loaded correctly.</p><p><strong>Sample Code</strong></p><parameter ac:name="language">java</parameter><plain-text-body>// Create a new intial context, which loads from jndi.properties file:
+topic.MyTopic = example.MyTopic</plain-text-body><p>You can edit the&#160;<strong><code>jndi.properties</code></strong> file to configure the <strong><code>ActiveMQConnectionFactory</code></strong>'s properties such as&#160;<strong><code>brokerURL</code></strong> and whether or not there should be an embedded broker etc. See <link><page ri:content-title="How do I embed a Broker inside a Connection"></page><plain-text-link-body>how to embed a broker in a connection</plain-text-link-body></link> for more details.</p><h3>ActiveMQ JNDI Tutorial</h3><p>This is a quick one page tutorial on how to setup and use JNDI to create a connection to ActiveMQ. The first thing is ActiveMQ does not provide a full JNDI server. This means JMS clients need to use properties files to create a JNDI <strong><code>IntialContextFactory</code></strong>. If you need an example properties file, you can look the source distribution <a shape="rect" href="https://github.com/apache/activemq/blob/master/activemq-uni
 t-tests/src/test/resources/jndi.properties">https://github.com/apache/activemq/blob/master/activemq-unit-tests/src/test/resources/jndi.properties</a>. Before we proceed, here are the properties.</p><table><tbody><tr><th colspan="1" rowspan="1"><p>Name</p></th><th colspan="1" rowspan="1"><p>Value</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>java.naming.factory.initial</code></p></td><td colspan="1" rowspan="1"><p><code>org.apache.activemq.jndi.ActiveMQInitialContextFactory</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>java.naming.provider.url</code></p></td><td colspan="1" rowspan="1"><p><code>tcp://hostname:61616</code></p></td></tr><tr><td colspan="1" rowspan="1"><p><code>topic.MyTopic</code></p></td><td colspan="1" rowspan="1"><p><code>example.MyTopic</code></p></td></tr></tbody></table><p>Make sure to add&#160;<strong><code>activemq-<em>&lt;version&gt;</em>.jar</code></strong> and&#160;<strong><code>spring-1.x.jar</code></strong> to your classpath. If the 
 libraries are not in the classpath, you will get a&#160;<strong><code>ClassNotFoundException</code></strong> at runtime. If you get <strong><code>ClassNotFoundException</code></strong>, try printing out the classpath and check it is present. You can also run ActiveMQ with&#160;<strong><code>-verbose</code></strong> option to verify the jar was loaded correctly.</p><p><strong>Sample Code</strong></p><parameter ac:name="language">java</parameter><plain-text-body>// Create a new intial context, which loads from jndi.properties file:
 javax.naming.Context ctx = new javax.naming.InitialContext();
 
 // Lookup the connection factory:
@@ -30,14 +30,14 @@ javax.jms.TopicSession session = conn.createTopicSession(false,TopicSession.AUTO
 
 // Create a new subscriber to receive messages:
 javax.jms.TopicSubscriber subscriber = session.createSubscriber(mytopic);
-</plain-text-body><p>Notice the name of the topic in the sample is <strong><code>MyTopic</code></strong>. ActiveMQ will read the&#160;<strong><code>jndi.properties</code></strong> files and creates the topics and queues in a lazy fashion. The prefix topic and queue is stripped, so the JNDI name begins after the prefix.</p><p>Once you have the&#160;<strong><code>jndi.properties</code></strong> edited and ready, it needs to be accessible to your application. The easiest way is to add&#160;<strong><code>jndi.properties</code></strong> to a jar file. When&#160;<strong><code>new InitialContext()</code></strong> is called, it will scan the resources and find the file. If you get <strong><code>javax.naming.NamingException</code></strong>, it usually means the&#160;<strong><code>jndi.properties</code></strong> file is not accessible.</p><p>You can also try to create a new initial context using either an instance of properties file or a map. For example, the approach recommended by JMS speci
 fication will work just fine.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Example Recommended by Specification</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><parameter ac:name="language">java</parameter><plain-text-body>Properties props = new Properties();
+</plain-text-body><p>Notice the name of the topic in the sample is <strong><code>MyTopic</code></strong>. ActiveMQ will read the&#160;<strong><code>jndi.properties</code></strong> files and creates the topics and queues in a lazy fashion. The prefix topic and queue is stripped, so the JNDI name begins after the prefix.</p><p>Once you have the&#160;<strong><code>jndi.properties</code></strong> edited and ready, it needs to be accessible to your application. The easiest way is to add&#160;<strong><code>jndi.properties</code></strong> to a jar file. When&#160;<strong><code>new InitialContext()</code></strong> is called, it will scan the resources and find the file. If you get <strong><code>javax.naming.NamingException</code></strong>, it usually means the&#160;<strong><code>jndi.properties</code></strong> file is not accessible.</p><p>You can also try to create a new initial context using either an instance of properties file or a map. For example, the approach recommended by JMS speci
 fication will work just fine.</p><table><tbody><tr><th colspan="1" rowspan="1"><p>Example Recommended by Specification</p></th></tr><tr><td colspan="1" rowspan="1"><parameter ac:name="language">java</parameter><plain-text-body>Properties props = new Properties();
 props.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.apache.activemq.jndi.ActiveMQInitialContextFactory");
 props.setProperty(Context.PROVIDER_URL,"tcp://hostname:61616");
 javax.naming.Context ctx = new InitialContext(props);||
-</plain-text-body></td></tr></tbody></table></div><p>If ActiveMQ is embedded within an EJB container, you will need to look at the containers documentation for the correct JNDI values.</p><h3 id="JNDISupport-DynamicallyCreatingDestinations">Dynamically Creating Destinations</h3><p>For the easiest possible configuration with JNDI based programs, there are two dynamic contexts, namely:</p><ul><li><strong><code>dynamicQueues</code></strong></li><li><strong><code>dynamicTopics</code></strong></li></ul><p>These allow you to lookup queues and topics using JNDI without any configuration.</p><p>For example, if you use the following name to lookup into JNDI:</p><plain-text-body>dynamicQueues/FOO.BAR
-</plain-text-body><p>you will get back an&#160;<strong><code>ActiveMQQueue</code></strong> of the name <strong><code>FOO.BAR</code></strong>. This can be very handy if you can easily reconfigure the JNDI name to use to lookup something in JNDI, but don't want to have to double configure a&#160;<strong><code>jndi.properties</code></strong> to match.</p><h3 id="JNDISupport-WorkingWithEmbeddedBrokers">Working With Embedded Brokers</h3><p>It is often useful to use an embedded broker in the same JVM as the JMS client. For this see <a shape="rect" href="how-do-i-embed-a-broker-inside-a-connection.xml">How do I embed a Broker inside a Connection</a>.</p><p>If you want to use an embedded broker with your JNDI provider you can just use the <a shape="rect" href="vm-transport-reference.xml">VM Transport</a> to connect to the broker in your URL. e.g. to create a purely in JVM broker use this URI</p><plain-text-body>vm://locahost
+</plain-text-body></td></tr></tbody></table><p>If ActiveMQ is embedded within an EJB container, you will need to look at the containers documentation for the correct JNDI values.</p><h3>Dynamically Creating Destinations</h3><p>For the easiest possible configuration with JNDI based programs, there are two dynamic contexts, namely:</p><ul><li><strong><code>dynamicQueues</code></strong></li><li><strong><code>dynamicTopics</code></strong></li></ul><p>These allow you to lookup queues and topics using JNDI without any configuration.</p><p>For example, if you use the following name to lookup into JNDI:</p><plain-text-body>dynamicQueues/FOO.BAR
+</plain-text-body><p>you will get back an&#160;<strong><code>ActiveMQQueue</code></strong> of the name <strong><code>FOO.BAR</code></strong>. This can be very handy if you can easily reconfigure the JNDI name to use to lookup something in JNDI, but don't want to have to double configure a&#160;<strong><code>jndi.properties</code></strong> to match.</p><h3>Working With Embedded Brokers</h3><p>It is often useful to use an embedded broker in the same JVM as the JMS client. For this see <link><page ri:content-title="How do I embed a Broker inside a Connection"></page></link>.</p><p>If you want to use an embedded broker with your JNDI provider you can just use the <link><page ri:content-title="VM Transport Reference"></page><plain-text-link-body>VM Transport</plain-text-link-body></link> to connect to the broker in your URL. e.g. to create a purely in JVM broker use this URI</p><plain-text-body>vm://locahost
 </plain-text-body><p>If you want to customize the broker use something like this:</p><plain-text-body>vm:broker:(tcp://localhost:61616)
-</plain-text-body><p>More options are available in the <a shape="rect" href="vm-transport-reference.xml">VM Transport Reference</a></p><h3 id="JNDISupport-ExampleJavaCode">Example Java Code</h3><p>Once you have configured JNDI on the classpath you can run any normal JMS application such as the following <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/demo/SimpleProducer.java">example</a>. Notice that the Java code just uses pure JMS APIs and is not in any way ActiveMQ specific</p><parameter ac:name="language">java</parameter><plain-text-body>/**
+</plain-text-body><p>More options are available in the <link><page ri:content-title="VM Transport Reference"></page></link></p><h3>Example Java Code</h3><p>Once you have configured JNDI on the classpath you can run any normal JMS application such as the following <a shape="rect" href="http://svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/demo/SimpleProducer.java">example</a>. Notice that the Java code just uses pure JMS APIs and is not in any way ActiveMQ specific</p><parameter ac:name="language">java</parameter><plain-text-body>/**
  * The SimpleQueueSender class consists only of a main method,
  * which sends several messages to a queue.
  *

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/journal-is-already-opened-by-this-application.xml
----------------------------------------------------------------------
diff --git a/journal-is-already-opened-by-this-application.xml b/journal-is-already-opened-by-this-application.xml
index b03ca81..7b4637c 100644
--- a/journal-is-already-opened-by-this-application.xml
+++ b/journal-is-already-opened-by-this-application.xml
@@ -1,9 +1,8 @@
-<div class="wiki-content maincontent"><h3 id="Journalisalreadyopenedbythisapplication-Error">Error</h3>
+<div class="wiki-content maincontent"><h3>Error</h3>
 
 <p>You get something like this</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="775cffc6-08c3-4a76-9070-7f6a96b8d64e" ac:name="code" ac:schema-version="1"><plain-text-body>
 java.io.IOException: Journal is already opened by this application.
        at
 org.apache.activeio.journal.active.ControlFile.lock(ControlFile.java:71)
@@ -17,10 +16,9 @@ org.apache.activeio.journal.active.JournalImpl.&lt;init&gt;(JournalImpl.java:99)
 org.apache.activemq.store.DefaultPersistenceAdapterFactory.createJournal(DefaultPersistenceAdapterFactory.java:198)
        at
 org.apache.activemq.store.DefaultPersistenceAdapterFactory.getJournal(DefaultPersistenceAdapterFactory.java:134)
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
-<h3 id="Journalisalreadyopenedbythisapplication-Description">Description</h3>
+<h3>Description</h3>
 
 <p>Each broker needs to have its own directory to store its journal files etc. The error indicates that you have 2 brokers sharing the same files.</p>
 
@@ -28,8 +26,8 @@ org.apache.activemq.store.DefaultPersistenceAdapterFactory.getJournal(DefaultPer
 
 <p>Another cause of this problem is if you are using the vm://localhost style transport in a JMS client with the JMS connection starting before you have initialised your broker. If you create a vm transport connection, it will auto-create a broker if there is not one running already; so you can end up creating 2 brokers by accident. The work around is to make sure that the JMS connection factory you are using depends on the broker you are configuring (e.g. in Spring use a <strong>depends-on</strong> attribute on the connection factory to make it depend on the broker). This will ensure that the broker is initialized first before the connection factory.</p>
 
-<div class="confluence-information-macro confluence-information-macro-warning"><p class="title">Be careful with broker names and URIs</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-<p>Make sure you do not use any strange characters in the names of brokers as they are converted to URIs which <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.4.2/docs/api/java/net/URI.html" rel="nofollow">do not allow things like underscores</a> in them etc.</p></div></div>
+<structured-macro ac:macro-id="04388450-4760-44b0-9ebe-9c4de4a6b01f" ac:name="warning" ac:schema-version="1"><parameter ac:name="title">Be careful with broker names and URIs</parameter><rich-text-body>
+<p>Make sure you do not use any strange characters in the names of brokers as they are converted to URIs which <a shape="rect" href="http://java.sun.com/j2se/1.4.2/docs/api/java/net/URI.html">do not allow things like underscores</a> in them etc.</p></rich-text-body></structured-macro>
 
-<p>This problem could also be caused by <a shape="rect" href="the-broker-will-not-start.xml">a bad OS and JVM combination</a></p></div>
+<p>This problem could also be caused by <link><page ri:content-title="The Broker will not start"></page><link-body>a bad OS and JVM combination</link-body></link></p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/junit-reports.xml
----------------------------------------------------------------------
diff --git a/junit-reports.xml b/junit-reports.xml
index e45ede7..6adaaa3 100644
--- a/junit-reports.xml
+++ b/junit-reports.xml
@@ -1,2 +1,2 @@
-<div class="wiki-content maincontent"><p>The latest test reports are visible via the <a shape="rect" class="external-link" href="https://hudson.apache.org/hudson/job/ActiveMQ/">Hudson ActiveMQ continuous integration builds</a></p></div>
+<div class="wiki-content maincontent"><p>The latest test reports are visible via the <a shape="rect" href="https://hudson.apache.org/hudson/job/ActiveMQ/">Hudson ActiveMQ continuous integration builds</a></p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/kaha-persistence.xml
----------------------------------------------------------------------
diff --git a/kaha-persistence.xml b/kaha-persistence.xml
index f036e7b..1cacdba 100644
--- a/kaha-persistence.xml
+++ b/kaha-persistence.xml
@@ -1,41 +1,37 @@
-<div class="wiki-content maincontent"><h2 id="KahaPersistence-KahaPersistence">Kaha Persistence</h2>
+<div class="wiki-content maincontent"><h2>Kaha Persistence</h2>
 
 <p>Kaha Peristence is a storage solution written especially for message persistence and is part of the ActiveMQ project. It's tuned to provide optimal performance for typical message usage patterns, which involves writing/reading and discarding messages that are persisted very quickly.</p>
 
 <p>Data stored in Kaha is appended to data logs - the log files are discarded once there is no longer interest in the data contained in the log.</p>
 
-<h3 id="KahaPersistence-ConfiguringKahaPersistence">Configuring Kaha Persistence</h3>
+<h3>Configuring Kaha Persistence</h3>
 
 <p>In the broker XML specify the persistence adaptor to be Kaha e.g.</p>
 
 <p>ActiveMQ 5.0 and above:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
- &lt;broker brokerName=&quot;broker&quot; persistent=&quot;true&quot; useShutdownHook=&quot;false&quot;&gt;
+<structured-macro ac:macro-id="f1210018-4a80-4011-a088-a6da3b1db3bc" ac:name="code" ac:schema-version="1"><plain-text-body>
+ &lt;broker brokerName="broker" persistent="true" useShutdownHook="false"&gt;
     &lt;transportConnectors&gt;
-      &lt;transportConnector uri=&quot;tcp://localhost:61616&quot;/&gt;
+      &lt;transportConnector uri="tcp://localhost:61616"/&gt;
     &lt;/transportConnectors&gt;
     &lt;persistenceAdapter&gt;
-      &lt;kahaPersistenceAdapter directory=&quot;activemq-data&quot; maxDataFileLength=&quot;33554432&quot;/&gt;
+      &lt;kahaPersistenceAdapter directory="activemq-data" maxDataFileLength="33554432"/&gt;
     &lt;/persistenceAdapter&gt;
   &lt;/broker&gt;
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 
 <p>ActiveMQ 4.1 and earlier:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
- &lt;broker brokerName=&quot;broker&quot; persistent=&quot;true&quot; useShutdownHook=&quot;false&quot;&gt;
+<structured-macro ac:macro-id="a53390c5-5c6b-4155-b84d-be230563faf1" ac:name="code" ac:schema-version="1"><plain-text-body>
+ &lt;broker brokerName="broker" persistent="true" useShutdownHook="false"&gt;
     &lt;transportConnectors&gt;
-      &lt;transportConnector uri=&quot;tcp://localhost:61616&quot;/&gt;
+      &lt;transportConnector uri="tcp://localhost:61616"/&gt;
     &lt;/transportConnectors&gt;
     &lt;persistenceAdapter&gt;
-      &lt;kahaPersistenceAdapter dir=&quot;activemq-data&quot; maxDataFileLength=&quot;33554432&quot;/&gt;
+      &lt;kahaPersistenceAdapter dir="activemq-data" maxDataFileLength="33554432"/&gt;
     &lt;/persistenceAdapter&gt;
   &lt;/broker&gt;
-]]></script>
-</div></div></div>
+</plain-text-body></structured-macro></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/kahadb-replication-experimental.xml
----------------------------------------------------------------------
diff --git a/kahadb-replication-experimental.xml b/kahadb-replication-experimental.xml
index 0c5b898..0b306d3 100644
--- a/kahadb-replication-experimental.xml
+++ b/kahadb-replication-experimental.xml
@@ -1,3 +1,3 @@
-<div class="wiki-content maincontent"><parameter ac:name="title">Note</parameter><rich-text-body><p>This is under review - and not currently supported.</p></rich-text-body><h2 id="KahaDBReplication(Experimental)-Overview">Overview</h2><p>The new KahaDB store supports a very fast and flexible replication system. It features:</p><ul><li>Journal level replication (The translates into lower overhead to the master to replicate records).</li><li>Support for multiple slaves.</li><li>Support to dynamically add slaves at runtime.</li><li>Uses multiple concurrent data transfer sessions to do an initial slave synchronization.</li><li>Big slave synchronizations can be resumed so synchronization progress is not lost if a slave is restarted.</li><li>A configurable minimum number of replicas allows you to pause processing until the data has been guaranteed to be replicated enough times.</li></ul><h2 id="KahaDBReplication(Experimental)-MasterElection">Master Election</h2><p>KahaDB supports a plugga
 ble Master Election algorithm but the only current implementation is one based on <a shape="rect" class="external-link" href="http://hadoop.apache.org/zookeeper">ZooKeeper</a>.</p><p>ZooKeeper is used to implement the master election algorithm. ZooKeeper is a very fast, replicated, in memory database with features that make it easy to implement cluster control algorithms. It is an Apache project which you can <a shape="rect" class="external-link" href="http://hadoop.apache.org/zookeeper/releases.html">freely download</a>. You must installed and have at least one ZooKeeper server running before setting up a KahaDB Master Slave configuration.</p><h2 id="KahaDBReplication(Experimental)-ConfiguringaBroker:">Configuring a Broker:</h2><p>The ActiveMQ binary distribution includes a KahaDB HA broker configuration at <strong>$ACTIVEMQ_HOME/conf/ha.xml</strong>.</p><p>It it setup to look for a ZooKeeper 3.0.0 server on localhost at port 2181. Edit the configuration if this is not where you ar
 e running your ZooKeeper server.</p><p>Start the configuation up by running:</p><plain-text-body>prompt&gt; $ACTIVEMQ_HOME/bin/activemq xbean:ha.xml
-</plain-text-body><p>The actual contents of the configuration file follows:<plain-text-body>{snippet:lang=xml|id=example|url=activemq/trunk/assembly/src/release/conf/ha.xml}</plain-text-body></p><h2 id="KahaDBReplication(Experimental)-UnderstandingthekahadbReplicationXMLelement">Understanding the kahadbReplication XML element</h2><h3 id="KahaDBReplication(Experimental)-ThebrokerURIAttribute">The brokerURI Attribute</h3><p>Notice that the the brokerURI attribute points at another broker configuration file. The ha-broker.xml contains the actual broker configuration that the broker uses when the node take over as master. The ha-broker.xml configuration file is a standard broker configuration except in these aspects:</p><ul><li>It MUST set the start="false" attribute on the broker element.</li><li>It MUST not configure a persistenceAdapter.</li></ul><p>The above rules allows the replication system to inject the replicated KahaDB store into the Master when it's starting up.</p><h3 id="Ka
 haDBReplication(Experimental)-TheminimumReplicasAttribute">The minimumReplicas Attribute</h3><p>The minimumReplicas specifies how many copies of the database are required before synchronous update operations are deemed successful. Setting this to 0 allows a broker to continue operating even if there are no slaves attached. If the value is set to 1 or greater, and there are no slaves attached, the brokers persistent message processing will be suspended until the minimum number of slaves are attached and the data synchronized.</p><h3 id="KahaDBReplication(Experimental)-TheuriAttribute">The uri Attribute</h3><p>The uri attribute should always be configured with a <strong>kdbr://</strong> based URI. KDBR stands for 'KahaDB Replication' and this is the replication protocol used between the masters and the slaves. The master binds the specified port with slaves subsequently connect to and establish replication sessions. The host name in the uri MUST get updated to the actual machine's hos
 t name since this is also used to identify the nodes in the cluster.</p><h3 id="KahaDBReplication(Experimental)-ThedirectoryAttribute">The directory Attribute</h3><p>This is the data directory where the KahaDB will store it's persistence files.</p></div>
+<div class="wiki-content maincontent"><parameter ac:name="title">Note</parameter><rich-text-body><p>This is under review - and not currently supported.</p></rich-text-body><h2>Overview</h2><p>The new KahaDB store supports a very fast and flexible replication system. It features:</p><ul><li>Journal level replication (The translates into lower overhead to the master to replicate records).</li><li>Support for multiple slaves.</li><li>Support to dynamically add slaves at runtime.</li><li>Uses multiple concurrent data transfer sessions to do an initial slave synchronization.</li><li>Big slave synchronizations can be resumed so synchronization progress is not lost if a slave is restarted.</li><li>A configurable minimum number of replicas allows you to pause processing until the data has been guaranteed to be replicated enough times.</li></ul><h2>Master Election</h2><p>KahaDB supports a pluggable Master Election algorithm but the only current implementation is one based on <a shape="rect" 
 href="http://hadoop.apache.org/zookeeper">ZooKeeper</a>.</p><p>ZooKeeper is used to implement the master election algorithm. ZooKeeper is a very fast, replicated, in memory database with features that make it easy to implement cluster control algorithms. It is an Apache project which you can <a shape="rect" href="http://hadoop.apache.org/zookeeper/releases.html">freely download</a>. You must installed and have at least one ZooKeeper server running before setting up a KahaDB Master Slave configuration.</p><h2>Configuring a Broker:</h2><p>The ActiveMQ binary distribution includes a KahaDB HA broker configuration at <strong>$ACTIVEMQ_HOME/conf/ha.xml</strong>.</p><p>It it setup to look for a ZooKeeper 3.0.0 server on localhost at port 2181. Edit the configuration if this is not where you are running your ZooKeeper server.</p><p>Start the configuation up by running:</p><plain-text-body>prompt&gt; $ACTIVEMQ_HOME/bin/activemq xbean:ha.xml
+</plain-text-body><p>The actual contents of the configuration file follows:<plain-text-body>{snippet:lang=xml|id=example|url=activemq/trunk/assembly/src/release/conf/ha.xml}</plain-text-body></p><h2>Understanding the kahadbReplication XML element</h2><h3>The brokerURI Attribute</h3><p>Notice that the the brokerURI attribute points at another broker configuration file. The ha-broker.xml contains the actual broker configuration that the broker uses when the node take over as master. The ha-broker.xml configuration file is a standard broker configuration except in these aspects:</p><ul><li>It MUST set the start="false" attribute on the broker element.</li><li>It MUST not configure a persistenceAdapter.</li></ul><p>The above rules allows the replication system to inject the replicated KahaDB store into the Master when it's starting up.</p><h3>The minimumReplicas Attribute</h3><p>The minimumReplicas specifies how many copies of the database are required before synchronous update operatio
 ns are deemed successful. Setting this to 0 allows a broker to continue operating even if there are no slaves attached. If the value is set to 1 or greater, and there are no slaves attached, the brokers persistent message processing will be suspended until the minimum number of slaves are attached and the data synchronized.</p><h3>The uri Attribute</h3><p>The uri attribute should always be configured with a <strong>kdbr://</strong> based URI. KDBR stands for 'KahaDB Replication' and this is the replication protocol used between the masters and the slaves. The master binds the specified port with slaves subsequently connect to and establish replication sessions. The host name in the uri MUST get updated to the actual machine's host name since this is also used to identify the nodes in the cluster.</p><h3>The directory Attribute</h3><p>This is the data directory where the KahaDB will store it's persistence files.</p></div>