Class 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 Detail

      • 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 Detail

      • 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 Detail

      • 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.