com.ibm.websphere.asynchbeans

Interface SubsystemMonitor

  • All Superinterfaces:
    EventSource


    public interface SubsystemMonitor
    extends EventSource
    This represents a subsystem monitor. This is returned to allow an application to interact with the monitor created on its behalf. This is an EventSource so an application can register a listener to it.

    A subsystem monitor basically is a set of alarms. When it is created, the applications tells it how often heart beats should be expected, how man beats missed means that it's stale and how many beats missed means it's dead. The monitor then sets up alarms to track this status. If the ping method is called then these alarms are reset. If the alarm fires then this means that ping hasn't been called, i.e. no heart beat was received by the application for the subsystem this monitor is 'watching'.

    When the number of beats for stale has elapsed without a ping then we fire a stale event. Later, if the number of beats for dead elapse without a ping then we fire a dead event. If a ping is received after a stale or dead notification then we send a fresh event indicating the subsystem is alive again and carry on as normal.

    If the stale beats equals the dead beats then no stale event is published, we just publish a dead event. The number of dead beats should always be greater or equal to the number of stale beats. What constitutes a ping is application specific. A destroy notification is also published.

    This can generate events. The events which can be generated are documented in the SubsystemMonitorEvents interface. Implement the Events interface and add an instance of this object using the SubsystemMonitor.addListener method.

    See Also:
    SubsystemMonitorManager, SubsystemMonitorEvents
    • Method Detail

      • getPropertyMap

        java.util.Map getPropertyMap()
        This returns the Map holding the properties for the subsystem monitor. This is thread safe.
        Returns:
        The Map for the properties.
      • getName

        java.lang.String getName()
        The name of the monitor.
      • getMissedBeatsForStale

        int getMissedBeatsForStale()
        The number of missed beats for the subsystem to be regarded as stale.
      • getMissedBeatsForDead

        int getMissedBeatsForDead()
        The number of missed beats for the subsystem to be regarded as dead.
      • getHeartBeatInterval

        int getHeartBeatInterval()
        The interval in milliseconds between expected heart beats. A heart beat should result in the ping method being called.
      • ping

        void ping()
        You must call this periodically to keep the monitor alive. Once missed beats for stale are missed then we're stale. Once missed beats for dead are missed then we're dead. The application is responsible for the plumbing to detect the subsystem has sent a heart beat. When the heart beat is detected then the application should call ping on the appropriate monitor.
      • start

        void start()
        The monitor only becomes active, that is starts tracking heart beats when it is started. Any pings received prior to start being called are ignored.
      • destroy

        void destroy()
        Kill the monitor. The monitor is not available to the user once destroy is called. A Notification indicating the monitor is about to be destroyed is sent when this method is called.
      • getCurrentState

        int getCurrentState()
        This returns the last notification sent by the subsystem monitor. Initially this returned dead until the first ping arrives. From that point on it's fresh until it goes stale and the dead. When it revives then it returns fresh again.
        Returns:
        one of (SUBSYSTEM_DEAD,SUBSYSTEM_FRESH,SUBSYSTEM_STALE)
IBM WebSphere Application ServerTM
Release 8.5