The Java Management Extensions (JMX) adapter reflects JMX MBeans and their properties and notifications as
topics.
The 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