java.lang.Object
java.util.EventObject
javax.management.Notification
javax.management.MBeanServerNotification
- 所有已实现的接口:
-
Serializable
代表由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具有以下特征:
- 其通知类型为
"JMX.mbean.registered.group"
或"JMX.mbean.unregistered.group"
,也可以写为REGISTRATION_NOTIFICATION
+ ".group"
或UNREGISTRATION_NOTIFICATION
+ ".group"
。 - 其MBean名称是选择正在注册或注销的MBeans集合(或超集)的ObjectName模式
- 其用户数据可以选择性地设置为包含所有正在注册或注销的MBeans名称的ObjectName数组。
发出这些组注册/注销通知的MBeans将在其MBeanNotificationInfo
中声明它们。
- 自版本:
- 1.5
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
表示已注册MBean的通知类型。static final String
表示已注销MBean的通知类型。Fields declared in class javax.management.Notification
source
-
Constructor Summary
ConstructorDescriptionMBeanServerNotification
(String type, Object source, long sequenceNumber, ObjectName objectName) 创建一个MBeanServerNotification对象,指定引起通知的MBeans的对象名称和指定的通知类型。 -
Method Summary
Methods declared in class javax.management.Notification
getMessage, getSequenceNumber, getTimeStamp, getType, getUserData, setSequenceNumber, setSource, setTimeStamp, setUserData, toString
Methods declared in class java.util.EventObject
getSource
-
Field Details
-
REGISTRATION_NOTIFICATION
表示已注册MBean的通知类型。值为"JMX.mbean.registered"。- 参见:
-
UNREGISTRATION_NOTIFICATION
表示已注销MBean的通知类型。值为"JMX.mbean.unregistered"。- 参见:
-
-
Constructor Details
-
MBeanServerNotification
public MBeanServerNotification(String type, Object source, long sequenceNumber, ObjectName objectName) 创建一个MBeanServerNotification对象,指定引起通知的MBeans的对象名称和指定的通知类型。- 参数:
-
type
- 表示通知类型的字符串。将其设置为以下值之一:REGISTRATION_NOTIFICATION
,UNREGISTRATION_NOTIFICATION
。 -
source
- 负责转发MBean服务器通知的MBeanServerNotification对象。 -
sequenceNumber
- 可用于排序接收到的通知的序列号。 -
objectName
- 引起通知的MBean的对象名称。
-
-
Method Details
-
getMBeanName
返回引起通知的MBean的对象名称。- 返回:
- 引起通知的MBean的对象名称。
-