org.opencms.main
Class CmsThreadStore

java.lang.Object
  extended by java.lang.Thread
      extended by org.opencms.main.CmsThreadStore
All Implemented Interfaces:
java.lang.Runnable

public final class CmsThreadStore
extends java.lang.Thread

The OpenCms "Grim Reaper" thread store were all system Threads are maintained.

This thread executes all 60 seconds and checks if report threads are still active. A report thread usually waits for a user to get the contents written to the report. However, if the user does not request the reports content (e.g. because the browser was closed), then the report thread becomes abandoned. This Grim Reaper will collect all such abandoned report threads and remove them after further 60 seconds.

Moreover, the Grim Reaper checks for all invalid user sessions that have times out for 5 or more minutes, and removes them as well.

Since:
6.0.0
Version:
$Revision: 1.23 $
Author:
Alexander Kandzior

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
protected CmsThreadStore(CmsSecurityManager securityManager)
          Hides the public constructor.
 
Method Summary
 void addThread(A_CmsReportThread thread)
          Adds a Thread to this Thread store.
 A_CmsReportThread retrieveThread(CmsUUID key)
          Retrieves a Thread from this Thread store.
 void run()
           
protected  void shutDown()
          Shut down this thread store.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CmsThreadStore

protected CmsThreadStore(CmsSecurityManager securityManager)
Hides the public constructor.

Parameters:
securityManager - needed for scheduling "undercover-jobs" that increase stability and fault tolerance
Method Detail

addThread

public void addThread(A_CmsReportThread thread)
Adds a Thread to this Thread store.

Parameters:
thread - the Thread to add

retrieveThread

public A_CmsReportThread retrieveThread(CmsUUID key)
Retrieves a Thread from this Thread store.

Parameters:
key - the key of the Thread to retrieve
Returns:
the Thread form this Thread store that matches the given key

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread
See Also:
Runnable.run()

shutDown

protected void shutDown()
Shut down this thread store.