Using a JMX Console With ServiceMix
This document explains how to connect a JMX Console to ServiceMix. Two open-source JMX Consoles will be discussed:
The ServiceMix JBIContainer exposes internal services and Components through JMX. The JBIContainer can be passed a JMXBeanServer or be configured to create one, if one doesn't exist. (see Configuration). If the JBIContainer creates its own MBeanServer instance, it also creates an RMI JMXConnector - to allow remote connections. The Ant Tasks use this:
Code Block |
---|
title | Creating remote JMX Connector to the JBIContainer |
---|
|
String jndiPath = <container name> + "JMX";
JMXServiceURL url = new JMXServiceURL ("service:jmx:rmi:///jndi/rmi://<namingHost>:<namingPort>/" + jndiPath) ;
JMXConnector connector = JMXConnectorFactory.connect(url);
|
The following configuration variables will be needed in the next sections. Be aware, the values shown are the default settings for ServiceMix.
Tip |
---|
|
The default namingPort is 1099 The default container name is defaultJBI The JMX Service URL is: service:jmx:rmi:///jndi/rmi://localhost:1099/defaultJBIJMX |
Using JConsole and Java 5
The Java-2 Platform, Standard Edition (J2SE) 5.0 release includes a JMX monitoring tool, JConsole. JConsole monitors applications running on the Java platform and provides information on their performance and resource consumption. Please see Sun's documentation for more information on using this tool.
How to Use JConsole to Monitor ServiceMix
The following information will be needed: the ServiceMix port number, the ServiceMix container id, and the JMX Service URL. This information was specified in the previous section in the Default Settings box.
- ServiceMix should be running first. Please see the #Getting Started Guide for instructions on running ServiceMix.
- Run JConsole from a command shell. The JConsole executable can be found in the
bin
directory of the J2SE installation directory. Code Block |
---|
cd [J2SE_install_dir]\bin
jconsole
|
The JConsole window will appear.
- Click on the Advanced tab. Enter the following in the box for "JMX URL":
service:jmx:rmi:///jndi/rmi://localhost:1099/defaultJBIJMX
.
Panel |
---|
borderColor | #ccc |
---|
title | JConsole Agent - JMX Console |
---|
borderStyle | solid |
---|
|
![](/confluence/download/attachments/38960/jconsoleagentscr.jpg?version=5&modificationDate=1129651031000&api=v2)
|
- Click the Connect box to connect to the ServiceMix container.
org.servicemix
will be visible in the console. Click on org.servicemix
to see its MBeans.
Panel |
---|
borderColor | #ccc |
---|
title | JConsole Management & Monitoring - JMX Console |
---|
borderStyle | solid |
---|
|
![](/confluence/download/attachments/38960/jconsoleconnection.jpg?version=2&modificationDate=1129655548000&api=v2)
|
Testing JConsole with ServiceMix
- To see JConsole in action, start one of the ServiceMix examples running, for instance, the _Basic_ Example:
Code Block |
---|
cd [servicemix_install_dir]\examples\basic
..\..\bin\servicemix servicemix.xml
|
where servicemix_install_dir
is the directory in which ServiceMix was installed. - Run JConsole (see previous section) and click on ((org.servicemix}}.
- Click on {{org.servicemix.jbi.framework.ComponentMBeanImpl. All of the components of the Basic example will be shown. Clicking on each of them will show the monitoring information available.
Panel |
---|
borderColor | #ccc |
---|
title | JConsole Monitoring & Management Console - JMX Console |
---|
borderStyle | solid |
---|
|
![](/confluence/download/attachments/38960/jconsolembeans.jpg?version=1&modificationDate=1129740639000&api=v2)
|
Using MC4J
When you want to get at the ServiceMix MBeans using MC4J use JSR160 as your server connection type and the above default JMX Service URL as your server URL.
Panel |
---|
borderColor | #ccc |
---|
title | MC4J - JMX Console |
---|
borderStyle | solid |
---|
|
![](http://servicemix.org/jmx2.jpg)
|
Panel |
---|
borderColor | #ccc |
---|
title | MC4J - JMX Console view 2 |
---|
borderStyle | solid |
---|
|
![](http://servicemix.org/servicemix-mc4j.png)
|
ServiceMix JMX Console
ServiceMix comes with a WAR which can be deployed, including ServiceMix inside any Servlet / J2EE application server in a standard deployment unit. The added benefit of the ServiceMix WAR is it includes a simple JMX operational console as well allowing your web browser to view JMX attributes and statistics.
To create the ServiceMix WAR from a fresh checkout of the code try this
Code Block |
---|
cd servicemix/tooling/servicemix-web
maven war
|
Then drop the WAR in any servlet engine.