FileDocCategorySizeDatePackage
NotificationService.javaAPI DocGlassfish v2 API7147Fri May 04 22:30:30 BST 2007com.sun.appserv.management.base

NotificationService

public interface NotificationService implements AMX, NotificationListener
Provides enhanced abilities for working with Notifications. Listens to other MBeans (as configured) and collects the Notifications which can later be retrieved by calling takeNotifications(). The listening is quite powerful; both "listen to" and "don't listen to" ObjectNames or ObjectName patterns may be specified, and are dynamically maintained.

All received Notifications are resent to all listeners on this MBean. This makes it possible to listen to a single MBean for all "interesting" Notifications across many different MBeans, even if these MBeans are dynamically registered and unregistered.

Buffering is also available, via a named buffer facility. Creation of a buffer together with an optional filter allows a caller to buffer Notifications of interest which can later be retrieved as a batch. This facility may be of particular use for clients which disconnect and reconnect.

When a buffer overflows, a notification of type BUFFER_OVERFLOW_NOTIFICATION_TYPE is emitted

Fields Summary
public static final String
J2EE_TYPE
The j2eeType as returned by {@link com.sun.appserv.management.base.AMX#getJ2EEType}.
public static final String
BUFFER_OVERFLOW_NOTIFICATION_TYPE
When the buffer overflows this Notification is issued. The user data of the Notification contains the Notification that was discarded.
public static final String
OVERFLOWED_NOTIFICATION_KEY
Key for accessing the overwritten Notification with the Notification of type BUFFER_OVERFLOW_NOTIFICATION_TYPE.
public static final String
NEXT_SEQUENCE_NUMBER_KEY
Key within the Map returned by getNotifications() that yields the Long for the next sequence number.
public static final String
NOTIFICATIONS_KEY
Key within the Map returned by getNotifications() that yields the Notifications[].
Constructors Summary
Methods Summary
public java.lang.ObjectcreateBuffer(int bufferSize, javax.management.NotificationFilter filter)
Create a new buffer of the specified size.

param
bufferSize maximum number of Notifications to be buffered
param
filter filter for Notifications to be buffered
return
id of the newly-created buffer

public voiddontListenTo(javax.management.ObjectName objectName)
Stop listening for Notifications on the specified . It may also be a pattern, in which case listening is stopped on all s matching the pattern.

param
objectName name of which should no longer be listened to.

public java.util.MapgetBufferNotifications(java.lang.Object bufferID, long sequenceNumberIn)
Get all outstanding Notifications which have a sequence number that is equal to or greater than the specified one. A sequence number of 0 means all Notifications. The sequence number in this case is the overarching one maintained by this buffer, and has nothing to do with the sequence number within any particular Notification.

Notifications are never removed from the buffer; be sure to use the returned sequence number as a means of fetching new Notifications.

The Map is keyed by the following:

  • NEXT_SEQUENCE_NUMBER_KEY returns the Long for the next sequence number for subsequent calls to getNotifications()
  • NOTIFICATIONS_KEY keys the Notification[]
  • return
    result[ 0 ] = next sequence number, result[ 1 ] = Notification[]

    public javax.management.NotificationFiltergetFilter(javax.management.ObjectName objectName)
    Get the filter being used for a particular .

    param
    objectName
    return
    NotificationFilter

    public java.util.SetgetListeneeSet()
    Get the MBeans to which this service listens.

    public java.lang.ObjectgetUserData()
    The user data supplied when the instance was created.

    public voidlistenTo(javax.management.ObjectName pattern, javax.management.NotificationFilter filter)
    Listen for Notifications from an using the specified filter, which may be null, in which case all Notifications are heard. The ObjectName may also be a pattern, in which case all s matching the pattern are listened to.

    Note that Notifications may also be manually forced into the service by calling handlingNotification().

    param
    pattern name of to listen to
    param
    filter

    public voidremoveBuffer(java.lang.Object id)
    Remove the specified buffer.