The JMX adapter reflects JMX MBeans and their properties and notifications as topics.
The Java Management Extensions (JMX) adapter is packaged in the
Diffusion™
publisher. The
Diffusion
publisher must be running for the JMX adapter be
enabled.
You can configure the adapter to reflect the state of JMX MBeans and MXBeans as topics. These MBeans can
be built-in,
Diffusion
, or third-party in origin.
The following aspects of the JMX adapter can be
configured:
Whether it is enabled or disabled.
By default, the adapter is enabled.
Which MBeans are reflected as topics.
By default, all
Diffusion
MBeans, java.nio:*,
java.lang:*, and
java.util.logging:* are reflected as
topics.
How often the data on those topics is refreshed.
By default, the topics
are refreshed every 3 seconds.
For more information about configuring the JMX adapter, see
Many statistics are available as MBean properties, for example, CPU load, OS version, number of file-descriptors,
and threads. Making these statistics available as topics to
Diffusion
clients makes possible the implementation of
system monitoring solutions to the web, and all other
Diffusion
platforms.
Note: Publishing MBean data to topics can constitute a security risk. Ensure that
crucial information about your
Diffusion
server is
protected by permissions.
Figure 1. Reflecting MBeans as topics
MBean notifications are also available as topics. Whenever a notification is
thrown and the matching topic is subscribed and a message holding a number of key
attributes is published to it.
Table 1. Notifications as topics
Record starting ...
Holding
message
javax.management.Notification.getMessage()
sequenceNumber
javax.management.Notification,getSequenceNumber()
timeStamp
javax.management.Notification.getTimeStamp()
userData
javax.management.Notification.getUserData() if present
source
javax.management.Notification.getSource()
The JMX Adapter is itself an MBean with
object-name com.pushtechnology.diffusion:name=JMXAdapter, which exposes the polling
frequency in milliseconds as attribute 'UpdateFrequency'. A value less than or equal to
zero prevents polling.
MXBeans versus Simple MBeans
The JMX adapter caters for both MXBeans and
simpler MBeans. All MBean attributes are serialized as strings when converted to topics,
this might be impractical if a solution returns an object or an array of objects. MXBean
attributes with ArrayType and CompositeType types are treated
differently.
CompositeType Fields within the composite attribute are mapped to discrete
topics. Figure 2. Showing a composite attribute as a topic nest
ArrayType One dimensional arrays are presented as a single record with many
values. Two dimensional arrays are not supported. ArrayType
attributes holding attributes that are not SimpleType are not supported (for
example, an ArrayType attribute holding Composite or ArrayType values) Figure 3. Topics reflecting an ArrayType MXBean
attributes