network.detectors
Class AgentAliveEventDetector

java.lang.Object
  |
  +--network.detectors.EventDetector
        |
        +--network.detectors.AgentAliveEventDetector
All Implemented Interfaces:
java.lang.Runnable, java.io.Serializable
Direct Known Subclasses:
SMSAgentAliveEventDetector

public class AgentAliveEventDetector
extends EventDetector

The AgentAliveEvent Detector periodically checks to see if detectors in an agent have died by checking that the number of threads in an agent never decreases.

See Also:
Serialized Form

Field Summary
private  java.lang.String[] defaultLocalTriggeringEvents
           
(package private)  int numDetectorThreads
           
(package private)  RunningThreads runningThreads
           
(package private)  int seqNumber
           
(package private)  long WRAP_AROUND
           
 
Fields inherited from class network.detectors.EventDetector
agentURN, attempts, cred, dbModule, eventIDGenerator, eventTable, host, localTriggeringEvents, printRunningThreadsFlag, remoteTriggeringEvents, reportTable
 
Constructor Summary
AgentAliveEventDetector(ConfigObject configObj)
          The default constructor.
 
Method Summary
 network.events.Event createEvent(java.util.Vector activeThreadList, long timeOut, java.util.Vector subList)
           
 java.util.Vector generateEvent(network.events.Event triggeredEvent)
          Possibly generates a AgentAliveEvent.
 java.lang.String getGeneratingEventClassName()
          Returns the event name that will be generated.
 java.util.Vector getRunningThreads()
          Returns a vector of currently running threads.
 void increaseSequenceNumber()
          Increases the sequence number of times when the count didn't match.
private  void populateRunningThreads()
          Re-generate the list of currently-running detectors.
 
Methods inherited from class network.detectors.EventDetector
getAlarmLevel, getAlertLevel, getLocalTriggeringEventClassNames, getRemoteTriggeringEventClassNames, getSynchronizer, InitializeFields, modifyDetector, populatePatterns, printRunningThreads, run, setAgentURN, setAlarmLevel, setAlertLevel, setDB, setEventIDGenerator, setEventTable, setLocalTriggeringEvents, setRemoteTriggeringEvents, setReportTable, stopDetector, switchOffPrintRunningThreads
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

defaultLocalTriggeringEvents

private java.lang.String[] defaultLocalTriggeringEvents

numDetectorThreads

int numDetectorThreads

seqNumber

int seqNumber

WRAP_AROUND

long WRAP_AROUND

runningThreads

RunningThreads runningThreads
Constructor Detail

AgentAliveEventDetector

public AgentAliveEventDetector(ConfigObject configObj)
The default constructor.

Method Detail

getGeneratingEventClassName

public java.lang.String getGeneratingEventClassName()
Returns the event name that will be generated.

Specified by:
getGeneratingEventClassName in class EventDetector
Returns:
event name to be generated.

generateEvent

public java.util.Vector generateEvent(network.events.Event triggeredEvent)
Possibly generates a AgentAliveEvent. Is triggered by a TimerEvent. Counts the number of active threads, and if that number does not match the previous count, it signals that a detector has died.

Specified by:
generateEvent in class EventDetector
Parameters:
triggeredEvent - the triggering event (will be a TimerEvent).
Returns:

createEvent

public network.events.Event createEvent(java.util.Vector activeThreadList,
                                        long timeOut,
                                        java.util.Vector subList)

increaseSequenceNumber

public void increaseSequenceNumber()
Increases the sequence number of times when the count didn't match.

Returns:

populateRunningThreads

private void populateRunningThreads()
Re-generate the list of currently-running detectors.

Returns:

getRunningThreads

public java.util.Vector getRunningThreads()
Returns a vector of currently running threads.

Returns:
vector of currently running threads.