Module java.management
Package javax.management

Class MBeanServerNotification

java.lang.Object
java.util.EventObject
javax.management.Notification
javax.management.MBeanServerNotification
所有已实现的接口:
Serializable

public class MBeanServerNotification extends Notification
代表由MBean服务器通过MBeanServerDelegate MBean发出的通知。MBean服务器发出以下类型的通知:MBean注册,MBean注销。

要接收MBeanServerNotifications,您需要向代表MBeanServer的MBeanServerDelegate MBean注册监听器。MBeanServerDelegate的ObjectName是MBeanServerDelegate.DELEGATE_NAME,即JMImplementation:type=MBeanServerDelegate

以下代码在MBean服务器mbeanServer中每次注册或注销MBean时打印一条消息:

 private static final NotificationListener printListener = new NotificationListener() {
     public void handleNotification(Notification n, Object handback) {
         if (!(n instanceof MBeanServerNotification)) {
             System.out.println("忽略类 " + n.getClass().getName() + " 的通知");
             return;
         }
         MBeanServerNotification mbsn = (MBeanServerNotification) n;
         String what;
         if (n.getType().equals(MBeanServerNotification.REGISTRATION_NOTIFICATION))
             what = "MBean已注册";
         else if (n.getType().equals(MBeanServerNotification.UNREGISTRATION_NOTIFICATION))
             what = "MBean已注销";
         else
             what = "未知类型 " + n.getType();
         System.out.println("接收到MBean服务器通知: " + what + ": " +
                 mbsn.getMBeanName());
     }
 };

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

不是MBeanServerDelegate的MBean也可以发出MBeanServerNotifications。特别是,有一种约定,即MBeans为一组MBeans发出MBeanServerNotification。

用于表示一组MBeans注册或注销的MBeanServerNotification具有以下特征:

发出这些组注册/注销通知的MBeans将在其MBeanNotificationInfo中声明它们。

自版本:
1.5
参见:
  • Field Details

    • REGISTRATION_NOTIFICATION

      public static final String REGISTRATION_NOTIFICATION
      表示已注册MBean的通知类型。值为"JMX.mbean.registered"。
      参见:
    • UNREGISTRATION_NOTIFICATION

      public static final String UNREGISTRATION_NOTIFICATION
      表示已注销MBean的通知类型。值为"JMX.mbean.unregistered"。
      参见:
  • Constructor Details

    • MBeanServerNotification

      public MBeanServerNotification(String type, Object source, long sequenceNumber, ObjectName objectName)
      创建一个MBeanServerNotification对象,指定引起通知的MBeans的对象名称和指定的通知类型。
      参数:
      type - 表示通知类型的字符串。将其设置为以下值之一:REGISTRATION_NOTIFICATIONUNREGISTRATION_NOTIFICATION
      source - 负责转发MBean服务器通知的MBeanServerNotification对象。
      sequenceNumber - 可用于排序接收到的通知的序列号。
      objectName - 引起通知的MBean的对象名称。
  • Method Details

    • getMBeanName

      public ObjectName getMBeanName()
      返回引起通知的MBean的对象名称。
      返回:
      引起通知的MBean的对象名称。