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
FieldsModifier and TypeFieldDescriptionstatic final String表示已注册MBean的通知类型。static final String表示已注销MBean的通知类型。Fields declared in class javax.management.Notification
source -
Constructor Summary
ConstructorsConstructorDescriptionMBeanServerNotification(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, toStringMethods 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的对象名称。
-