Class MBeanServerNotification

java.lang.Object
java.util.EventObject
javax.management.Notification
javax.management.MBeanServerNotification
All Implemented Interfaces:
Serializable

public class MBeanServerNotification
extends Notification
Represents a notification emitted by the MBean Server through the MBeanServerDelegate MBean. The MBean Server emits the following types of notifications: MBean registration, MBean unregistration.

To receive MBeanServerNotifications, you need to register a listener with the MBeanServerDelegate MBean that represents the MBeanServer. The ObjectName of the MBeanServerDelegate is MBeanServerDelegate.DELEGATE_NAME, which is JMImplementation:type=MBeanServerDelegate.

The following code prints a message every time an MBean is registered or unregistered in the MBean Server mbeanServer:

 private static final NotificationListener printListener = new NotificationListener() {
     public void handleNotification(Notification n, Object handback) {
         if (!(n instanceof MBeanServerNotification)) {
             System.out.println("Ignored notification of class " + n.getClass().getName());
             return;
         }
         MBeanServerNotification mbsn = (MBeanServerNotification) n;
         String what;
         if (n.getType().equals(MBeanServerNotification.REGISTRATION_NOTIFICATION))
             what = "MBean registered";
         else if (n.getType().equals(MBeanServerNotification.UNREGISTRATION_NOTIFICATION))
             what = "MBean unregistered";
         else
             what = "Unknown type " + n.getType();
         System.out.println("Received MBean Server notification: " + what + ": " +
                 mbsn.getMBeanName());
     }
 };

 ...
     mbeanServer.addNotificationListener(
             MBeanServerDelegate.DELEGATE_NAME, printListener, null, null);
 

An MBean which is not an MBeanServerDelegate may also emit MBeanServerNotifications. In particular, there is a convention for MBeans to emit an MBeanServerNotification for a group of MBeans.

An MBeanServerNotification emitted to denote the registration or unregistration of a group of MBeans has the following characteristics:

  • Its notification type is "JMX.mbean.registered.group" or "JMX.mbean.unregistered.group", which can also be written REGISTRATION_NOTIFICATION+ ".group" or UNREGISTRATION_NOTIFICATION+ ".group".
  • Its MBean name is an ObjectName pattern that selects the set (or a superset) of the MBeans being registered or unregistered
  • Its user data can optionally be set to an array of ObjectNames containing the names of all MBeans being registered or unregistered.

MBeans which emit these group registration/unregistration notifications will declare them in their MBeanNotificationInfo.

Since:
1.5
See Also:
Serialized Form
  • Field Details

    • REGISTRATION_NOTIFICATION

      public static final String REGISTRATION_NOTIFICATION
      Notification type denoting that an MBean has been registered. Value is "JMX.mbean.registered".
      See Also:
      Constant Field Values
    • UNREGISTRATION_NOTIFICATION

      public static final String UNREGISTRATION_NOTIFICATION
      Notification type denoting that an MBean has been unregistered. Value is "JMX.mbean.unregistered".
      See Also:
      Constant Field Values
  • Constructor Details

    • MBeanServerNotification

      public MBeanServerNotification​(String type, Object source, long sequenceNumber, ObjectName objectName)
      Creates an MBeanServerNotification object specifying object names of the MBeans that caused the notification and the specified notification type.
      Parameters:
      type - A string denoting the type of the notification. Set it to one these values: REGISTRATION_NOTIFICATION, UNREGISTRATION_NOTIFICATION.
      source - The MBeanServerNotification object responsible for forwarding MBean server notification.
      sequenceNumber - A sequence number that can be used to order received notifications.
      objectName - The object name of the MBean that caused the notification.
  • Method Details

    • getMBeanName

      public ObjectName getMBeanName()
      Returns the object name of the MBean that caused the notification.
      Returns:
      the object name of the MBean that caused the notification.