Chapter 1. MX4J and JMX Overview

Table of Contents

What is JMX ?
For what can you use JMX ?
MX4J's JMX implementation



MX4J is an open source implementation of the JMX TM technology.
JMX stands for Java TM Management Extensions , and it's an optional package for the J2SE TM platform that is now included in J2SE 5.0.

The Java Management Extension specification is a Java Specification Request (see JSR 003) currently in maintenance release 1.2.
A new JSR has been issued to address connectivity to a remote JMX Agent, JSR 160, which has released version 1.0 on October 2003.

MX4J implements both JSR 3 and JSR 160.

What is JMX ?

JMX defines the architecture, the patterns, the API and the services to build manageable Java applications.
But what do this really mean ?

For what can you use JMX ?

By means of JMX, components of an application have a standard way of exposing some of their functionality for management. A JMX Agent enables manageability of these functionalities from local or remote, allowing a system administrator to manage the components of the application.

Managing a component means having the possibility to stop and restart it, to remove it from the application or to add it to an application, to change its configuration files, to ask it to do some operation (such as downloading information from an URL the system administrator passes in), and so on, depending on the management interface that this component expose.

Many application servers such as Tomcat, JBoss, IONA, BEA WebLogic have their architecture based on JMX.

Every JMX Agent comes with a set of predefined services, defined by the JMX specification.
A service is a manageable component that can be used by, embedded in or extended by an application.
Every JMX implementation can provide additional services, and normally each additional service can be used or deployed in a different JMX implementation without requiring any additional operation, thus achieving extreme portability of applications and application components.

MX4J's JMX implementation

MX4J's implementation of the JMX specification is stable and reliable, passing every night an extended suite of tests following the XP principles.

The MX4J implementation runs in J2SE version 1.3 or superior.

It provides some non-standard but useful extension that can be used at wish, or not used if maximum portability is a primary goal.

The MX4J implementation provides also useful services and tools, and several examples to guide users in the use of JMX to build their applications. Some example of tools, extensions and utilities are:

  • HTTP adaptor (also over SSL)
  • ConfigurationLoader to read MBean configuration from XML
  • AbstractDynamicMBean to ease DynamicMBean development
  • Utility MBeans for:
    • RMIRegistry
    • TNameServ
    • Statistics
    • EMail
    • Remote MBean Proxying
  • Automatic generation of management interfaces for standard MBean via XDoclet