JMX configuration for Camel routes - 7.0

Talend ESB System Management Integration User Guide

EnrichVersion
7.0
EnrichProdName
Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
task
Administration and Monitoring
Installation and Upgrade
EnrichPlatform
Talend ESB

Apache Camel has support for JMX and allows you to monitor a Camel managed object (for example, routes). By default, a JMX agent is enabled in Camel which means that the Camel runtime creates and registers MBean management objects with a MBeanServer instance in the VM. But if you would like to configure a JMX agent (for example to use a custom port in JMX URL) the best way to do it is adding a jmxAgent element inside the camelContext element in Spring configuration:

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    <jmxAgent id="agent" mbeanObjectDomainName="your.domain.name">
    ...
<camelContext>

The default JMX configuration is used in both examples, but you can also configure it:

<jmxAgent id="agent" registryPort="port number" createConnector="true">		

createConnector means that we should create a JMX connector (to allow remote management) for the MBeanServer.registryPort is the port for JMX.

You can set hostName and domainName for DefaultManagementNamingStrategy. As a default, hostName is the computer name and domainName is org.apache.camel

<bean id="naming" 
      class="org.apache.camel.management.DefaultManagementNamingStrategy">
    <property name="hostName" value="localhost"/>
    <property name="domainName" value="org.apache.camel">
</bean>

To configure specific definitions for the Camel route object use the properties:

Property Name

Description

org.apache.camel

domain name

routes

Camel routes type

context

Camel context name

name

route name

You can find further information about configuring Camel JMX agent at the "Camel" site http://camel.apache.org/camel-jmx.html.