By using JMX technology different types of resource can be managed
e.g. an implementation of a service, an application, a device
or a user. To manage a given resource JMX technology used, but that resource must be developed
in the Java language, or at least offer a Java language wrapper. It
must also be instrumented by one or more Java objects known as managed beans,
in compliance with the JMX specification.
Developers of applications are free to choose the
granularity of objects that are instrumented as MBeans. An MBean might represent
the smallest object in an application, or it could represent the entire
application. Application components designed with their management interface in
mind is written in MBeans. Without a management interface MBeans can also be used as wrappers for
legacy code.
Managed Beans (MBeans)
The Java objects that implement resources and their
instrumentation are called managed beans. MBeans must follow the
interfaces defined in the JMX specification (JSR 3) and design patterns. This
ensures that all MBeans provide the instrumentation of managed resources in a
standardized way.
The instrumentation of a given resource is provided by one or
more MBeans by standard or dynamic way. Standard MBeans are Java
objects that conform to certain design patterns derived from the JavaBeansTM
component model and Dynamic MBeans conform to specific interface which offers more
flexibility at runtime.
The instrumentation of a resource allows it to be manageable
through the agent level. MBeans do not require knowledge of the JMX agent with
which they operate.
MBeans are designed to be flexible and easy to
implement. without having to understand or invest in
complex management systems developers of applications, services, or devices can make their
products manageable in a standard way. Existing objects can easily be evolved to produce
standard MBeans or wrapped as dynamic MBeans, thus with minimum effort existing resources
managed.
The instrumentation level also specifies a
notification mechanism. This allows MBeans to generate
notification events to components of the other levels.
The management interface of an MBean consists of:
Named and typed attributes that can be read-write both
Named and typed operations that can be invoked
Typed notifications that can be emitted by the MBean
The Java class of a standard MBean exposes the resource to be
managed directly through its operation and attributes. Attributes are basically internal
entities that are exposed through getter and setter methods. Operations are the
special methods of the class that are available to managers.
Through
introspection all these methods are defined statically in the MBean interface and are visible to a JMX agent.
This is the most straightforward way of making a new resource
manageable.
A dynamic MBean is an MBean which define management
interface at runtime. e.g. a configuration MBean could determine the
names and types of the attributes it exposes by parsing an XML file.
JVM
By using JMX technology the Java Virtual Machine (JVM) is highly instrumented.
To access the built-in JVM
instrumentation you can easily start a JMX agent and thereby monitor and manage the JVM remotely by means of JMX
technology.
JMX Technology and J2SE 5.0
The core classes for the JMX implementation are provided in the
javax.management package. The java.lang.management package provides
the management interface for monitoring of the JVM as well as
the operating system on which the JVM is running.
To enable the JMX agent and configure its operation using jconsole, you should have to
set some specific system properties when JVM start. For local access,
set the property com.sun.management.jmxremote given below when starting the JVM: