You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2017/04/10 10:21:14 UTC

svn commit: r1010145 [2/2] - in /websites/production/camel/content: ./ cache/

Modified: websites/production/camel/content/camel-jmx.html
==============================================================================
--- websites/production/camel/content/camel-jmx.html (original)
+++ websites/production/camel/content/camel-jmx.html Mon Apr 10 10:21:14 2017
@@ -207,7 +207,7 @@ java.lang.SecurityException: Unauthorize
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[SUNJMX=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1616 \
 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
 ]]></script>
-</div></div><p>(The&#160;<strong><code>SUNJMX</code></strong> environment variable is simple used by the startup script for Camel, as additional startup parameters for the JVM. If you start Camel directly, you'll have to pass these parameters yourself.)</p><h4 id="CamelJMX-jmxAgentPropertiesReference">jmxAgent Properties Reference</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Spring property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>System property</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><code>id</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The JMX agent name, and i
 t is not optional.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>usePlatformMBeanServer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.usePlatformMBeanServer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code>, <code>true</code> - Release 1.5 or later</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If <code>true</code>, it will use the <strong><code>MBeanServer</code></strong> from the JVM.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>mbeanServerDefaultDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.mbeanServerDefaultDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The default JMX domain of the <strong><code>MBeanServer</code></strong>.</p></td></tr><tr><td colspan="1"
  rowspan="1" class="confluenceTd"><p><code>mbeanObjectDomainName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.mbeanObjectDomainName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The JMX domain that all object names will use.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>createConnector</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.createRmiConnect</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 we should create a JMX connector (to allow remote management) for the <strong><code>MBeanServer</code></strong>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>registryPort</code></p></td><td colspan="1" rowspan="1" class="confluence
 Td"><p><code>org.apache.camel.jmx.rmiConnector.registryPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1099</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The port that the JMX RMI registry will use.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>connectorPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.rmiConnector.connectorPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-1 (dynamic)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The port that the JMX RMI server will use.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>serviceUrlPath</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.serviceUrlPath</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>/jmxrmi/camel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>T
 he path that JMX connector will be registered under.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>onlyRegisterProcessorWithCustomId</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.onlyRegisterProcessorWithCustomId</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.0:</strong> If this option is enabled then only processors with a custom id set will be registered. This allows you to filer out unwanted processors in the JMX console.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>statisticsLevel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>All / Default</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> Configures the level for whether per
 formance statistics is enabled for the MBean. See section <em>Configuring level of granularity for performance statistics</em> for more details. </p><p><strong>From Camel 2.16</strong>: the&#160;<strong><code>All</code></strong> option is renamed to <strong><code>Default</code></strong>, and a new&#160;<strong><code>Extended</code></strong> option has been introduced which allows gathered additional run time JMX metrics.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>includeHostName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.includeHostName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.13:</strong> Whether to include the hostname in the MBean naming. <strong>From Camel 2.13</strong>: the default is <strong><code>false</code></strong>. Previously the default was <strong><code>true</code></strong>.</p><p>
 You can use this option to restore old behavior if really needed.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>useHostIPAddress</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.useHostIPAddress</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> Whether to use hostname or IP Address in the service url when creating the remote connector. By default the hostname will be used.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>loadStatisticsEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.loadStatisticsEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong>Whether load statistics is enabled 
 (gathers load statistics using a background thread per CamelContext).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>endpointRuntimeStatisticsEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.endpointRuntimeStatisticsEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> Whether endpoint runtime statistics is enabled (gathers runtime usage of each incoming and outgoing endpoints).</p></td></tr></tbody></table></div><h4 id="CamelJMX-ConfiguringWhethertoRegisterMBeansalways,ForNewRoutesorJustbyDefault">Configuring Whether to Register MBeans always, For New Routes or Just by Default</h4><p><strong>Available as of Camel 2.7</strong></p><p>Camel now offers 2 settings to control whether or not to register mbeans</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th c
 olspan="1" rowspan="1" class="confluenceTh"><p>Option</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><code>registerAlways</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 then MBeans is always registered.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>registerNewRoutes</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If enabled then adding new routes after <a shape="rect" href="camelcontext.html">CamelContext</a> has been started will also register MBeans from that given route.</p></td></tr></tbody></table></div><p>By default Camel registers MBeans for all the routes configured when its starting.
  The <strong><code>registerNewRoutes</code></strong> option control if MBeans should also be registered if you add new routes thereafter. You can disable this, if you for example add and remove temporary routes where management is not needed.</p><p>Be a bit caution to use the <strong><code>registerAlways</code></strong> option when using dynamic <a shape="rect" href="eip.html">EIP</a> patterns such as the <a shape="rect" href="recipient-list.html">Recipient List</a> having unique endpoints. If so then each unique endpoint and its associated services/producers would also be registered. This could potential lead to degradation in system performance due the rising number of mbeans in the registry. A MBean is not a light-weight object and thus consumes memory.</p><h3 id="CamelJMX-MonitoringCamelusingJMX">Monitoring Camel using JMX</h3><h4 id="CamelJMX-UsingJConsoletomonitorCamel">Using JConsole to monitor Camel</h4><p>The <strong><code>CamelContext</code></strong> should appear in the l
 ist of local connections, if you are running JConsole on the same host as Camel.&#160; To connect to a remote Camel instance, or if the local process does not show up, use Remote Process option, and enter an URL.</p><p>Here is an example localhost URL:&#160;<strong><code>service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel</code></strong></p><p>Using the Apache Camel with JConsole</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" src="camel-jmx.data/camel-jmx.png" data-image-src="/confluence/download/attachments/85697/camel-jmx.png?version=1&amp;modificationDate=1224680681000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="9224" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="camel-jmx.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="85
 697" data-linked-resource-container-version="82"></span></p><h4 id="CamelJMX-Whichendpointsareregistered">Which endpoints are registered</h4><p>In <strong>Camel 2.1</strong> onward <strong>only</strong> <code>singleton</code> endpoints are registered as the overhead for non singleton will be substantial in cases where thousands or millions of endpoints are used. This can happens when using a <a shape="rect" href="recipient-list.html">Recipient List</a> EIP or from a <strong><code>ProducerTemplate</code></strong> that sends a lot of messages.</p><h4 id="CamelJMX-Whichprocessorsareregistered">Which processors are registered</h4><p>See <a shape="rect" href="why-is-my-processor-not-showing-up-in-jconsole.html">this FAQ</a>.</p><h4 id="CamelJMX-HowtousetheJMXNotificationListenertolistenthecamelevents?">How to use the JMX NotificationListener to listen the camel events?</h4><p>The Camel notification events give a coarse grained overview what is happening. You can see lifecycle event from 
 context and endpoints and you can see exchanges being received by and sent to endpoints. From <strong>Camel 2.4</strong> you can use a custom JMX NotificationListener to listen the camel events.</p><p>First you need to set up a&#160;<strong><code>JmxNotificationEventNotifier</code></strong> before you start the CamelContext.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>(The&#160;<strong><code>SUNJMX</code></strong> environment variable is simple used by the startup script for Camel, as additional startup parameters for the JVM. If you start Camel directly, you'll have to pass these parameters yourself.)</p><h4 id="CamelJMX-jmxAgentPropertiesReference">jmxAgent Properties Reference</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Spring property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>System property</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><code>id</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The JMX agent name, and i
 t is not optional.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>usePlatformMBeanServer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.usePlatformMBeanServer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code>, <code>true</code> - Release 1.5 or later</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If <code>true</code>, it will use the <strong><code>MBeanServer</code></strong> from the JVM.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>mbeanServerDefaultDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.mbeanServerDefaultDomain</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The default JMX domain of the <strong><code>MBeanServer</code></strong>.</p></td></tr><tr><td colspan="1"
  rowspan="1" class="confluenceTd"><p><code>mbeanObjectDomainName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.mbeanObjectDomainName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The JMX domain that all object names will use.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>createConnector</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.createRmiConnect</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 we should create a JMX connector (to allow remote management) for the <strong><code>MBeanServer</code></strong>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>registryPort</code></p></td><td colspan="1" rowspan="1" class="confluence
 Td"><p><code>org.apache.camel.jmx.rmiConnector.registryPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1099</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The port that the JMX RMI registry will use.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>connectorPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.rmiConnector.connectorPort</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-1 (dynamic)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The port that the JMX RMI server will use.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>serviceUrlPath</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.serviceUrlPath</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>/jmxrmi/camel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>T
 he path that JMX connector will be registered under.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>onlyRegisterProcessorWithCustomId</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.onlyRegisterProcessorWithCustomId</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.0:</strong> If this option is enabled then only processors with a custom id set will be registered. This allows you to filer out unwanted processors in the JMX console.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>statisticsLevel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>All / Default</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> Configures the level for whether per
 formance statistics is enabled for the MBean. See section <em>Configuring level of granularity for performance statistics</em> for more details. </p><p><strong>From Camel 2.16</strong>: the&#160;<strong><code>All</code></strong> option is renamed to <strong><code>Default</code></strong>, and a new&#160;<strong><code>Extended</code></strong> option has been introduced which allows gathered additional run time JMX metrics.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>includeHostName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.includeHostName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.13:</strong> Whether to include the hostname in the MBean naming. <strong>From Camel 2.13</strong>: the default is <strong><code>false</code></strong>. Previously the default was <strong><code>true</code></strong>.</p><p>
 You can use this option to restore old behavior if really needed.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>useHostIPAddress</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.useHostIPAddress</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> Whether to use hostname or IP Address in the service url when creating the remote connector. By default the hostname will be used.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>loadStatisticsEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.loadStatisticsEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong>Whether load statistics is enabled 
 (gathers load statistics using a background thread per CamelContext).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>endpointRuntimeStatisticsEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>org.apache.camel.jmx.endpointRuntimeStatisticsEnabled</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> Whether endpoint runtime statistics is enabled (gathers runtime usage of each incoming and outgoing endpoints).</p></td></tr></tbody></table></div><h4 id="CamelJMX-ConfiguringWhethertoRegisterMBeansalways,ForNewRoutesorJustbyDefault">Configuring Whether to Register MBeans always, For New Routes or Just by Default</h4><p><strong>Available as of Camel 2.7</strong></p><p>Camel now offers 2 settings to control whether or not to register mbeans</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th c
 olspan="1" rowspan="1" class="confluenceTh"><p>Option</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><code>registerAlways</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 then MBeans is always registered.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>registerNewRoutes</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If enabled then adding new routes after <a shape="rect" href="camelcontext.html">CamelContext</a> has been started will also register MBeans from that given route.</p></td></tr></tbody></table></div><p>By default Camel registers MBeans for all the routes configured when its starting.
  The <strong><code>registerNewRoutes</code></strong> option control if MBeans should also be registered if you add new routes thereafter. You can disable this, if you for example add and remove temporary routes where management is not needed.</p><p>Be a bit caution to use the <strong><code>registerAlways</code></strong> option when using dynamic <a shape="rect" href="eip.html">EIP</a> patterns such as the <a shape="rect" href="recipient-list.html">Recipient List</a> having unique endpoints. If so then each unique endpoint and its associated services/producers would also be registered. This could potential lead to degradation in system performance due the rising number of mbeans in the registry. A MBean is not a light-weight object and thus consumes memory.</p><h3 id="CamelJMX-MonitoringCamelusingJMX">Monitoring Camel using JMX</h3><h4 id="CamelJMX-UsingJConsoletomonitorCamel">Using JConsole to monitor Camel</h4><p>The <strong><code>CamelContext</code></strong> should appear in the l
 ist of local connections, if you are running JConsole on the same host as Camel.&#160; To connect to a remote Camel instance, or if the local process does not show up, use Remote Process option, and enter an URL.</p><p>Here is an example localhost URL:&#160;<strong><code>service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel</code></strong></p><p>Using the Apache Camel with JConsole</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" src="camel-jmx.data/camel-jmx.png" data-image-src="/confluence/download/attachments/85697/camel-jmx.png?version=1&amp;modificationDate=1224680681000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="9224" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="camel-jmx.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="85
 697" data-linked-resource-container-version="83"></span></p><h4 id="CamelJMX-Whichendpointsareregistered">Which endpoints are registered</h4><p>In <strong>Camel 2.1</strong> onward <strong>only</strong> <code>singleton</code> endpoints are registered as the overhead for non singleton will be substantial in cases where thousands or millions of endpoints are used. This can happens when using a <a shape="rect" href="recipient-list.html">Recipient List</a> EIP or from a <strong><code>ProducerTemplate</code></strong> that sends a lot of messages.</p><h4 id="CamelJMX-Whichprocessorsareregistered">Which processors are registered</h4><p>See <a shape="rect" href="why-is-my-processor-not-showing-up-in-jconsole.html">this FAQ</a>.</p><h4 id="CamelJMX-HowtousetheJMXNotificationListenertolistenthecamelevents?">How to use the JMX NotificationListener to listen the camel events?</h4><p>The Camel notification events give a coarse grained overview what is happening. You can see lifecycle event from 
 context and endpoints and you can see exchanges being received by and sent to endpoints. From <strong>Camel 2.4</strong> you can use a custom JMX NotificationListener to listen the camel events.</p><p>First you need to set up a&#160;<strong><code>JmxNotificationEventNotifier</code></strong> before you start the CamelContext.</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[
 // Set up the JmxNotificationEventNotifier
 notifier = new JmxNotificationEventNotifier();
@@ -236,7 +236,7 @@ context.getManagementStrategy().getManag
     }, null);
 
 ]]></script>
-</div></div><h4 id="CamelJMX-UsingtheTracerMBeantogetfinegrainedtracing">Using the Tracer MBean to get fine grained tracing</h4><p>Additionally to the coarse grained notifications above <strong>Camel 2.9.0</strong> support JMX Notification for fine grained trace events. These can be found in the Tracer MBean. To activate fine grained tracing you first need to activate tracing on the context or on a route. This can either be done when configuring the context or on the context / route MBeans.</p><p>As a second step you have to set the <strong><code>jmxTraceNotifications</code></strong> attribute to <code>true</code> on the tracer. This can again be done when configuring the context or at run time on the tracer MBean.</p><p>Now you can register for&#160;<code>TraceEvent</code> Notifications on the Tracer MBean using JConsole. There will be one Notification for every step on the route with all exchange and message details.</p><p><span class="confluence-embedded-file-wrapper"><img class=
 "confluence-embedded-image confluence-content-image-border" src="camel-jmx.data/jconsole_trace_notifications.png" data-image-src="/confluence/download/attachments/85697/jconsole_trace_notifications.png?version=1&amp;modificationDate=1317961747000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="28016788" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="jconsole_trace_notifications.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="85697" data-linked-resource-container-version="82"></span></p><h3 id="CamelJMX-UsingJMXforyourownCamelCode">Using JMX for your own Camel Code</h3><h4 id="CamelJMX-RegisteringyourownManagedEndpoints">Registering your own Managed Endpoints</h4><p><strong>Available as of Camel 2.0</strong><br clear="none"> You can decorate your own endpoints with Spring managed annotations <strong><code>@Manage
 dResource</code></strong> to allow to register them in the Camel <strong><code>MBeanServer</code></strong> and thus access your custom MBeans using JMX.<br clear="none"> <strong>Notice:</strong> in <strong>Camel 2.1</strong> we have changed this to apply other than just endpoints but then you need to implement the interface <strong><code>org.apache.camel.spi.ManagementAware</code></strong> as well. More about this later.</p><p>For example we have the following custom endpoint where we define some options to be managed:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h4 id="CamelJMX-UsingtheTracerMBeantogetfinegrainedtracing">Using the Tracer MBean to get fine grained tracing</h4><p>Additionally to the coarse grained notifications above <strong>Camel 2.9.0</strong> support JMX Notification for fine grained trace events. These can be found in the Tracer MBean. To activate fine grained tracing you first need to activate tracing on the context or on a route. This can either be done when configuring the context or on the context / route MBeans.</p><p>As a second step you have to set the <strong><code>jmxTraceNotifications</code></strong> attribute to <code>true</code> on the tracer. This can again be done when configuring the context or at run time on the tracer MBean.</p><p>Now you can register for&#160;<code>TraceEvent</code> Notifications on the Tracer MBean using JConsole. There will be one Notification for every step on the route with all exchange and message details.</p><p><span class="confluence-embedded-file-wrapper"><img class=
 "confluence-embedded-image confluence-content-image-border" src="camel-jmx.data/jconsole_trace_notifications.png" data-image-src="/confluence/download/attachments/85697/jconsole_trace_notifications.png?version=1&amp;modificationDate=1317961747000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="28016788" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="jconsole_trace_notifications.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="85697" data-linked-resource-container-version="83"></span></p><h3 id="CamelJMX-UsingJMXforyourownCamelCode">Using JMX for your own Camel Code</h3><h4 id="CamelJMX-RegisteringyourownManagedEndpoints">Registering your own Managed Endpoints</h4><p><strong>Available as of Camel 2.0</strong><br clear="none"> You can decorate your own endpoints with Spring managed annotations <strong><code>@Manage
 dResource</code></strong> to allow to register them in the Camel <strong><code>MBeanServer</code></strong> and thus access your custom MBeans using JMX.<br clear="none"> <strong>Notice:</strong> in <strong>Camel 2.1</strong> we have changed this to apply other than just endpoints but then you need to implement the interface <strong><code>org.apache.camel.spi.ManagementAware</code></strong> as well. More about this later.</p><p>For example we have the following custom endpoint where we define some options to be managed:</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[
 @ManagedResource(description = &quot;Our custom managed endpoint&quot;)
 public class CustomEndpoint extends MockEndpoint implements ManagementAware&lt;CustomEndpoint&gt; {

Modified: websites/production/camel/content/console-example.html
==============================================================================
--- websites/production/camel/content/console-example.html (original)
+++ websites/production/camel/content/console-example.html Mon Apr 10 10:21:14 2017
@@ -141,7 +141,7 @@ Enter something:
 <p>Next, navigate to the <code>org.apache.camel.example.console.CamelConsoleMain</code> class, right-click, and select Run As &#8594; Java Application.</p>
 <div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
 <p>Click on the screenshot below, to make it bigger.</p></div></div>
-<p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-thumbnail" src="console-example.thumbs/run-as.png" data-image-src="/confluence/download/attachments/27843710/run-as.png?version=1&amp;modificationDate=1334026057000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="28017569" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="run-as.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="27843710" data-linked-resource-container-version="17"></span></p>
+<p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-thumbnail" src="console-example.thumbs/run-as.png" data-image-src="/confluence/download/attachments/27843710/run-as.png?version=1&amp;modificationDate=1334026057000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="28017569" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="run-as.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="27843710" data-linked-resource-container-version="18"></span></p>
 
 
 <h3 id="ConsoleExample-Seealso">See also</h3>

Modified: websites/production/camel/content/debugger.html
==============================================================================
--- websites/production/camel/content/debugger.html (original)
+++ websites/production/camel/content/debugger.html Mon Apr 10 10:21:14 2017
@@ -121,7 +121,7 @@ protected void debugBefore(Exchange exch
     log.info(&quot;Before &quot; + definition + &quot; with body &quot; + exchange.getIn().getBody());
 }
 ]]></script>
-</div></div>Then from your Java editor just add a breakpoint inside the <strong><code>debugBefore</code></strong> method. Then fire up the unit test and wait for the Java editor to hit the breakpoint. Then you can inspect the <a shape="rect" href="exchange.html">Exchange</a> during debugging while it advances during routing. The <strong><code>ProcessorDefinition</code></strong> and the <strong><code>id</code></strong> and <strong><code>shortName</code></strong> parameters is all information which tells you where in the route the breakpoint was hit.<div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>There is also a <strong><code>debugAfter</code></strong> method which is invoked after the processor has been invoked. This allows you to <em>see</em> what happens to the <a shape="rect" href="exchange.html">Exchange</
 a> right after it has invoked a processor in the route.</p></div></div><p>The screenshot below shows the <a shape="rect" href="debugger.html">Debugger</a> in action. The IDE (IDEA) has hit the breakpoint and we can inspect the parameters. Notice how we can see that the message is to be send to the&#160;<strong><code>mock:a</code></strong> endpoint:</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="debugger.data/debug.png" data-image-src="/confluence/download/attachments/86210/debug.png?version=1&amp;modificationDate=1288586116000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="24346680" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="debug.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="86210" data-linked-resource-container-version="35"></span></p><h3 id="Debugger-Se
 eAlso">See Also</h3><ul class="alternate"><li><a shape="rect" href="tracer.html">Tracer</a></li><li><a shape="rect" href="backlogdebugger.html">BacklogDebugger</a></li></ul></div>
+</div></div>Then from your Java editor just add a breakpoint inside the <strong><code>debugBefore</code></strong> method. Then fire up the unit test and wait for the Java editor to hit the breakpoint. Then you can inspect the <a shape="rect" href="exchange.html">Exchange</a> during debugging while it advances during routing. The <strong><code>ProcessorDefinition</code></strong> and the <strong><code>id</code></strong> and <strong><code>shortName</code></strong> parameters is all information which tells you where in the route the breakpoint was hit.<div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>There is also a <strong><code>debugAfter</code></strong> method which is invoked after the processor has been invoked. This allows you to <em>see</em> what happens to the <a shape="rect" href="exchange.html">Exchange</
 a> right after it has invoked a processor in the route.</p></div></div><p>The screenshot below shows the <a shape="rect" href="debugger.html">Debugger</a> in action. The IDE (IDEA) has hit the breakpoint and we can inspect the parameters. Notice how we can see that the message is to be send to the&#160;<strong><code>mock:a</code></strong> endpoint:</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="debugger.data/debug.png" data-image-src="/confluence/download/attachments/86210/debug.png?version=1&amp;modificationDate=1288586116000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="24346680" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="debug.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="86210" data-linked-resource-container-version="36"></span></p><h3 id="Debugger-Se
 eAlso">See Also</h3><ul class="alternate"><li><a shape="rect" href="tracer.html">Tracer</a></li><li><a shape="rect" href="backlogdebugger.html">BacklogDebugger</a></li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/camel/content/pojo-messaging-example.html
==============================================================================
--- websites/production/camel/content/pojo-messaging-example.html (original)
+++ websites/production/camel/content/pojo-messaging-example.html Mon Apr 10 10:21:14 2017
@@ -112,7 +112,7 @@ mvn compile camel:run
 
 <p>When you start the example up you'll see a whole bunch of logs that won't really mean anything to you <img class="emoticon emoticon-smile" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/smile.png" data-emoticon-name="smile" alt="(smile)"> The interesting stuff is happening in the background. Here's a diagram of whats going on.</p>
 
-<p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="pojo-messaging-example.data/pojo-messaging.jpg" data-image-src="/confluence/download/attachments/108577/pojo-messaging.jpg?version=1&amp;modificationDate=1233062777000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="9645" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="pojo-messaging.jpg" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/jpeg" data-linked-resource-container-id="108577" data-linked-resource-container-version="23"></span></p>
+<p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="pojo-messaging-example.data/pojo-messaging.jpg" data-image-src="/confluence/download/attachments/108577/pojo-messaging.jpg?version=1&amp;modificationDate=1233062777000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="9645" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="pojo-messaging.jpg" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/jpeg" data-linked-resource-container-id="108577" data-linked-resource-container-version="24"></span></p>
 
 <p>At step 1 the <code>SendFileRecordsToQueueBean</code> polls the <code>./src/data</code> directory for new files. There are 3 files in this directory so 3 messages will be created. As shown below, the <a shape="rect" href="pojo-consuming.html"><code>@Consume</code></a> annotation will cause any new messages coming from the <code>file:src/data endpoint</code> to be sent to the <code>onFileSendToQueue</code> method.</p>
 

Modified: websites/production/camel/content/route-throttling-example.html
==============================================================================
--- websites/production/camel/content/route-throttling-example.html (original)
+++ websites/production/camel/content/route-throttling-example.html Mon Apr 10 10:21:14 2017
@@ -150,7 +150,7 @@
 For example you can change the option <code>maxInflightExchanges</code> while its running to find a more suitable value.</p>
 
 <p>The screenshot below illustrates it from a JConsole.<br clear="none">
-<span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="route-throttling-example.data/throttling%20services.png" data-image-src="/confluence/download/attachments/5604305/throttling%20services.png?version=1&amp;modificationDate=1257166177000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="5865480" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="throttling services.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="5604305" data-linked-resource-container-version="18"></span></p>
+<span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="route-throttling-example.data/throttling%20services.png" data-image-src="/confluence/download/attachments/5604305/throttling%20services.png?version=1&amp;modificationDate=1257166177000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="5865480" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="throttling services.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="5604305" data-linked-resource-container-version="19"></span></p>
 
 <p>See more at <a shape="rect" href="camel-jmx.html">using JMX with Camel</a>.</p>
 

Modified: websites/production/camel/content/tracer-example.html
==============================================================================
--- websites/production/camel/content/tracer-example.html (original)
+++ websites/production/camel/content/tracer-example.html Mon Apr 10 10:21:14 2017
@@ -121,7 +121,7 @@
 ]]></script>
 </div></div><p>And it should return the list of trace events in the SQL.</p><p>We enter this SQL:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: sql; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[select id, shortExchangeId, previousNode, toNode, body from camel_messagetraced]]></script>
-</div></div><p>and get the output as the picture below:</p><p><br clear="none"> <span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="tracer-example.data/tracer_sql.png" data-image-src="/confluence/download/attachments/107823/tracer_sql.png?version=1&amp;modificationDate=1232323775000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="9605" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="tracer_sql.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="107823" data-linked-resource-container-version="23"></span></p><h3 id="TracerExample-Routing">Routing</h3><p>The diagram below illustrates the route diagram generated using <a shape="rect" href="visualisation.html">Visualisation</a>.<br clear="none"> <span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src
 ="tracer-example.data/tracer_dot.png" data-image-src="/confluence/download/attachments/107823/tracer_dot.png?version=1&amp;modificationDate=1232326207000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="9606" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="tracer_dot.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="107823" data-linked-resource-container-version="23"></span></p><p>We receive an Exchange from the in stream, then its split using the <strong><code>splitWords</code></strong> method. Then the quote method is invoked before it's aggregated and finally sent to the stream out to be printed in the console.</p><h3 id="TracerExample-TracetheRouting">Trace the Routing</h3><p>If we look at the 6 rows from the traced SQL (the first picture) and with the route diagram in mind we can get a better understand how the
  <a shape="rect" href="exchange.html">Exchange</a> was routed.</p><ol><li>The <a shape="rect" href="exchange.html">Exchange</a> does not have a previousNode so its the first step where its consumed from the input stream and that its going to the splitter.</li><li>The exchange id has changed and this is the output of the splitter as it creates a new Exchange. We can also see this one has one word in the body. This <a shape="rect" href="exchange.html">Exchange</a> is being routed to the quote bean next.</li><li>This is the 2nd output from the splitter containing the 2nd word. This <a shape="rect" href="exchange.html">Exchange</a> is being routed to the quote bean next.</li><li>This is the Beer <a shape="rect" href="exchange.html">Exchange</a> where we can see the output from the quote server and that its being routed to the aggregator.</li><li>This is the Camel <a shape="rect" href="exchange.html">Exchange</a> where we can see the output from the quote server and that its being routed
  to the aggregator.</li><li>This is the result of the aggregator where the <a shape="rect" href="exchange.html">Exchange</a> ending with id&#160;<strong><code>0-2</code></strong> "was the winner" and is being routed as the aggregated result to the stream out.</li></ol><h3 id="TracerExample-ConfigurationofTracinginCamel">Configuration of <a shape="rect" href="jpa.html">JPA</a> Tracing in Camel</h3><p>In Camel you need to configure it to use JPA for tracing. We do this as by adding a tracer in the <strong><code>META-INF/camel-context.mxl</code></strong> file:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>and get the output as the picture below:</p><p><br clear="none"> <span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="tracer-example.data/tracer_sql.png" data-image-src="/confluence/download/attachments/107823/tracer_sql.png?version=1&amp;modificationDate=1232323775000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="9605" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="tracer_sql.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="107823" data-linked-resource-container-version="24"></span></p><h3 id="TracerExample-Routing">Routing</h3><p>The diagram below illustrates the route diagram generated using <a shape="rect" href="visualisation.html">Visualisation</a>.<br clear="none"> <span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src
 ="tracer-example.data/tracer_dot.png" data-image-src="/confluence/download/attachments/107823/tracer_dot.png?version=1&amp;modificationDate=1232326207000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="9606" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="tracer_dot.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="107823" data-linked-resource-container-version="24"></span></p><p>We receive an Exchange from the in stream, then its split using the <strong><code>splitWords</code></strong> method. Then the quote method is invoked before it's aggregated and finally sent to the stream out to be printed in the console.</p><h3 id="TracerExample-TracetheRouting">Trace the Routing</h3><p>If we look at the 6 rows from the traced SQL (the first picture) and with the route diagram in mind we can get a better understand how the
  <a shape="rect" href="exchange.html">Exchange</a> was routed.</p><ol><li>The <a shape="rect" href="exchange.html">Exchange</a> does not have a previousNode so its the first step where its consumed from the input stream and that its going to the splitter.</li><li>The exchange id has changed and this is the output of the splitter as it creates a new Exchange. We can also see this one has one word in the body. This <a shape="rect" href="exchange.html">Exchange</a> is being routed to the quote bean next.</li><li>This is the 2nd output from the splitter containing the 2nd word. This <a shape="rect" href="exchange.html">Exchange</a> is being routed to the quote bean next.</li><li>This is the Beer <a shape="rect" href="exchange.html">Exchange</a> where we can see the output from the quote server and that its being routed to the aggregator.</li><li>This is the Camel <a shape="rect" href="exchange.html">Exchange</a> where we can see the output from the quote server and that its being routed
  to the aggregator.</li><li>This is the result of the aggregator where the <a shape="rect" href="exchange.html">Exchange</a> ending with id&#160;<strong><code>0-2</code></strong> "was the winner" and is being routed as the aggregated result to the stream out.</li></ol><h3 id="TracerExample-ConfigurationofTracinginCamel">Configuration of <a shape="rect" href="jpa.html">JPA</a> Tracing in Camel</h3><p>In Camel you need to configure it to use JPA for tracing. We do this as by adding a tracer in the <strong><code>META-INF/camel-context.mxl</code></strong> file:</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;!-- use camel jpa trace so we can see all the traced exchanges in a database --&gt;
 &lt;bean id=&quot;camelTracer&quot; class=&quot;org.apache.camel.processor.interceptor.Tracer&quot;&gt;

Modified: websites/production/camel/content/tutorial-jmsremoting.html
==============================================================================
--- websites/production/camel/content/tutorial-jmsremoting.html (original)
+++ websites/production/camel/content/tutorial-jmsremoting.html Mon Apr 10 10:21:14 2017
@@ -354,7 +354,7 @@ public static void main(final String[] a
 DefaultInstrumentationAgent    INFO  JMX connector thread started on service:jmx:rmi:///jndi/rmi://claus-acer:1099/jmxrmi/camel
 ...
 ]]></script>
-</div></div><p>In the screenshot below we can see the route and its performance metrics:<br clear="none"> <span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="tutorial-jmsremoting.data/jconsole_jms_tutorial.PNG" data-image-src="/confluence/download/attachments/82923/jconsole_jms_tutorial.PNG?version=1&amp;modificationDate=1214345078000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="59672517" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="jconsole_jms_tutorial.PNG" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="82923" data-linked-resource-container-version="39"></span></p><h2 id="Tutorial-JmsRemoting-SeeAlso">See Also</h2><ul><li><a shape="rect" class="external-link" href="http://aminsblog.wordpress.com/2008/05/06/15/" rel="nofollow">Spring Remoting with JMS Example</a> on <a sh
 ape="rect" class="external-link" href="http://aminsblog.wordpress.com/" rel="nofollow">Amin Abbaspour's Weblog</a></li></ul></div>
+</div></div><p>In the screenshot below we can see the route and its performance metrics:<br clear="none"> <span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="tutorial-jmsremoting.data/jconsole_jms_tutorial.PNG" data-image-src="/confluence/download/attachments/82923/jconsole_jms_tutorial.PNG?version=1&amp;modificationDate=1214345078000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="59672517" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="jconsole_jms_tutorial.PNG" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="82923" data-linked-resource-container-version="40"></span></p><h2 id="Tutorial-JmsRemoting-SeeAlso">See Also</h2><ul><li><a shape="rect" class="external-link" href="http://aminsblog.wordpress.com/2008/05/06/15/" rel="nofollow">Spring Remoting with JMS Example</a> on <a sh
 ape="rect" class="external-link" href="http://aminsblog.wordpress.com/" rel="nofollow">Amin Abbaspour's Weblog</a></li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">