[CONF] Apache Camel: Camel JMX (page edited)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[CONF] Apache Camel: Camel JMX (page edited)

Dhiraj Bokde (Confluence)

Camel JMX has been edited by William Tam (Jun 12, 2008).

(View changes)

Content:

Camel JMX

Apache Camel has extensive support for JMX to allow you to monitor and control the behavior of the broker via the JMX MBeans.

Using JMX to monitor Apache Camel

You can enable/disable JMX support as follows...

1. Run a camel context setting the context property useJmx to true.

<camelContext id="camel" useJmx="true" xmlns="http://activemq.apache.org/camel/schema/spring">    
    <route>
      ...
    </route>
  </camelContext>

2. Run a JMX console (e.g. jconsole - JMX console included in the JDK <JAVA_HOME>/bin/jconsole.exe)

3. Connect to the given JMX URL:

The CamelContext should appear in the list of local connections, if you are running JConsole on the same host as Camel.

To connect to a remote Camel instance, or if the local process does not show up, use Remote Process option, and enter an URL. Here is an example localhost URL:

service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi

Using the Apache Camel which Jconsole

 

The SystemProperties for Camel JMX support

Property Name value Description
org.apache.camel.jmx true or false if is true , it will enable jmx feature in Camel
org.apache.camel.jmx.usePlatformMBeanServer true or false if is true, Camel JMX agent will use the platformMBeanServer which holds the JVM's memory, cpu and some other management information

Advanced JMX Configuration

The spring configuration file allows you to configure how Camel is exposed to JMX for management. In some cases, you could specify more information here, like the connector's port or the path name.

Example:

<camelContext id="camel" useJmx="true" xmlns="http://activemq.apache.org/camel/schema/spring">
    <jmxAgent id="agent" connectorPort="20008" jmxDomainName="org.apache.camel.test"/>
    <route>
      <from uri="seda:start"/>
      <to uri="mock:result"/>
    </route>
</camelContext>

If you wish to change the Java 5 JMX settings you can use various JMX system properties

For example you can enable remote JMX connections to the Sun JMX connector, via setting the following environment variable (using set or export depending on your platform). These settings only configure the Sun JMX connector within Java 1.5+, not the JMX connector that Camel creates by default.

SUNJMX=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=1616 \
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

(The SUNJMX 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.)

jmxAgent Properties Reference

Property Name Default Value Description
id   The JMX agent name, and it is not optional
usePlatformMBeanServer false If true then it will use the plateform MBean server form the JVM
jmxDomainName org.apache.camel The jmx domain that all objects names will use
createConnector true If we should create a JMX connector (to allow remote management) for the MBeanServer
connectorPort 1099 The port that the JMX connector will use
connectorPath /jmxrmi The path that JMX connector will be registered under