Table of Contents
The Java Management Extension (JMX) API is defined and under maintenance release of the Java Specification
Request (JSR) number 3.
JMX defines the API for management of Java applications, and those API are local to the application: remote
clients that would like to connect to a JMX-enabled remote application and manage or monitor it using JMX
could not do it in a standard way.
The MX4J project, the JMX reference implementation itself, and other JMX implementations provide custom
connectors, mostly RMI-based and HTTP-based, but those are not interoperable.
To fill this gap,
JSR 160 extends JSR 3 by providing a standard
API to connect to remote JMX-enabled applications.
Currently, JSR 160 has defined a mandatory connector based on RMI (that supports both RMI/JRMP and RMI/IIOP),
and an optional one based on sockets and Java serialization (JMXMP).
JSR 160 thus provides a standard way to connect to remote JMX-enabled applications using RMI; it is possible to use MX4J JSR 160 implementation on client side, and have a JMX Remote Reference Implementation on server side, or viceversa. This allows the creation of Management Consoles based on Swing, for example, that will be able to interoperate no matter which JMX implementation is used.
MX4J implements JSR 160. This means that MX4J ships the standard JSR 160 API, located in package
javax.management.remote, and the mandatory providers defined by the specification,
namely the
rmi and
iiop providers, located in package
javax.management.remote.rmi.
MX4J does not implement yet the optional
jmxmp provider defined by the JSR 160 specification.
MX4J provides other four providers, not specified by the JSR 160 specification. This means that they will work
only if MX4J runs at both client and server side. These four providers are the
soap,
local,
hessian and
burlap providers.
To sum up, MX4J allows you to specify JMXServiceURLs (see next section) of the following kind: