Java Management Extensions (JMX)
The Java Management Extension (JMX) technology has been in existence since a long time (since J2SE version 5.0), however only recently did I get my hands dirty with it. It is certainly one of the most intriguing yet little discussed technology that the Java community has produced (JSR 160). This article is a brief abstract of the one available at the Sun Website
Java Management Extensions (JMX) technology offers programmers the ability to add monitoring and management to their Java applications. In effect, these APIs allow you to locally or remotely manage anything Java-enabled, from web servers to network devices to web phones.
With JMX technology, an application, device, or service on one machine (called a resource), can be controlled remotely through the use of one or more custom JavaBean objects known as Managed Beans (MBeans). These MBeans are then registered in a core-managed object server (an MBean server). The MBean server acts as a management agent to any remote managers that want to access the resource.
The JMX Environment
The JMX specification defines architecture in three distinct tiers
Instrumentation Tier. Resources, such as applications, devices, or services, are instrumented using Java objects called Managed Beans (MBeans). MBeans expose their management interfaces, composed of attributes and operations, through a JMX agent for remote management and monitoring.
Agent Tier. The main component of a JMX agent is the MBean server. This is a core managed object server in which MBeans are registered. A JMX agent also includes a set of services for handling MBeans. JMX agents directly control resources and make them available for management.
Remote Management Tier. This tier defines protocol adaptors and connectors that make a JMX agent accessible from remote management applications outside the agent’s Java Virtual Machine (JVM)*. (Note that JSR 160 defines connectors only.) Connectors are used when the remote client is JMX-aware, and sees the same JMX API as a local client would. Adaptors are used when the remote client is using a generic management protocol such as Simple Network Management Protocol (SNMP) or Common Information Model and Web Based Enterprise Management (CIM/WBEM).
There are generally three types of developers who use JMX, although one person might exercise all three roles:
- A developer that writes MBeans to manage resources. Here, JMX technology defines the interfaces exposed for management. The developer is responsible for the “glue” between the MBean and the resource itself.
- A developer that creates and deploys the agent. This person typically performs a number of tasks, including:
- Creating an MBean server, or using the one supplied by the platform.
- Registering the MBeans that represent the resources using MBean naming conventions.
- Configuring the connectors and protocol adaptors supplied by the platform (RMI and SNMP), or adding custom connectors or adaptors if the resources are to be accessed remotely.
- A developer that writes the remote manager. This person chooses the connector or protocol adaptors to interact with the JMX agent, and builds views of the resources managed remotely through the exposed MBeans.
There are four types of MBeans, as defined by the JMX specification:
· Standard MBeans
· Dynamic MBeans
· Model MBeans
· Open MBeans
The typical process used in creating a JMX-compliant management interface involves at least two steps. The first step is to create an MBean interface, as well as an agent to register that MBean with the MBean server. The next step is to manage the MBean using a remote management application. The JMX specification defines a standard set of connectors that allow you to access JMX agents from remote management applications. This is useful because JMX connectors using different protocols provide the same management interface. This enables a management application to manage resources transparently, regardless of the communication protocol used. JMX agents can also be used by systems or applications that are not compliant with the JMX specification, but which support JMX agents.
For more details refer to the JMX Website

One Response to “Java Management Extensions (JMX)”
Hi Kaizar,
I gone through ur Blog .It looks very interesting and helpful for me also .As i want to use some technology like JMX in my project .I need ur suggestion for this .my email id is virendravikram06@gmail.com
I have sent u a linked-in request accept it ,that i can communicate you .
thanks
vikram
Leave a Reply