javax.management
public class: MBeanServerNotification [javadoc |
source]
java.lang.Object
java.util.EventObject
javax.management.Notification
javax.management.MBeanServerNotification
All Implemented Interfaces:
Serializable
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 {@code 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 {@linkplain Notification#getType() notification type} is
{@code "JMX.mbean.registered.group"} or
{@code "JMX.mbean.unregistered.group"}, which can also be written MBeanServerNotification#REGISTRATION_NOTIFICATION {@code + ".group"} or
MBeanServerNotification#UNREGISTRATION_NOTIFICATION {@code + ".group"}.
- Its {@linkplain #getMBeanName() MBean name} is an ObjectName pattern
that selects the set (or a superset) of the MBeans being registered
or unregistered
- Its {@linkplain Notification#getUserData() 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 .
Field Summary |
---|
public static final String | REGISTRATION_NOTIFICATION | Notification type denoting that an MBean has been registered.
Value is "JMX.mbean.registered". |
public static final String | UNREGISTRATION_NOTIFICATION | Notification type denoting that an MBean has been unregistered.
Value is "JMX.mbean.unregistered". |
Constructor: |
public MBeanServerNotification(String type,
Object source,
long sequenceNumber,
ObjectName objectName) {
super(type, source, sequenceNumber);
this.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.
|
Methods from java.lang.Object: |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method from javax.management.MBeanServerNotification Detail: |
public ObjectName getMBeanName() {
return objectName;
}
Returns the object name of the MBean that caused the notification. |
public String toString() {
return super.toString() + "[mbeanName=" + objectName + "]";
}
|