Just a second...

The JMX adapter

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 Screenshot of MBeans attributes reflected 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 An attribute that contains other attributes is reflected as a branch of the topic tree with the attributes it contains as subtopics.
  • 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 Screenshot of topics. One topic contains and array of Strings. Another topic contains a table of Strings.