|
Oracle® Coherence Java API Reference Release 3.6.0.0 E15725-01 |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
com.tangosol.util.Base
com.tangosol.util.Daemon
public abstract class Daemon
A abstract Daemon thread handler. A sub-class need only provide an implementation of the run() method. When the Daemon is told to start, it will create a Java thread, which means that the number of Daemon instances within a system must be limited to a reasonable number. If an arbitrarily large number of conceptual daemons are necessary, consider using a TaskDaemon, which allows arbitrary tasks to be queued for execution. If thread pooling is desired, consider using a WorkManager implementation.
Nested Class Summary | |
---|---|
class |
Daemon.DaemonWorker The sub-class of Thread that this Daemon uses as the actual thread of execution. |
Constructor Summary | |
---|---|
Daemon() Default constructor. |
|
Daemon(String sName) Creates a Daemon with the specified name. |
|
Daemon(String sName, int nPriority, boolean fStart) Creates a Daemon with a specified name and priority. |
Method Summary | |
---|---|
protected void |
changeState(int nState, Daemon.DaemonWorker worker) Change the state of the daemon. |
protected void |
configureWorker(Daemon.DaemonWorker worker) Configure a worker to use as a daemon. |
protected void |
finishStarting(Daemon.DaemonWorker worker) Wait for the specified worker to finish starting. |
protected void |
finishStopping(Daemon.DaemonWorker worker, long cWait) Wait for the specified worker to finish stopping. |
protected String |
getConfiguredName() Determine the configured name for the daemon. |
protected int |
getConfiguredPriority() Determine the configured priority for the daemon. |
Guardian.GuardContext |
getContext() Return the guard context monitoring this guardable, or null if this Guardable is no longer being monitored. |
protected String |
getDescription() Format the Daemon attributes into a String for inclusion in the String returned from the toString() method. |
protected Runnable |
getGuardRegisterAction() Return the Guardian registration action. |
long |
getMaxWaitMillis(long cDefaultMillis) If this Daemon is guarded, return the maximum wait time that the Daemon is allowed to wait for, according to its SLA. |
protected int |
getState() Obtain the state of the daemon. |
Thread |
getThread() Accessor to obtain the Daemon thread object. |
ClassLoader |
getThreadContextClassLoader() Determine the configured context ClassLoader for the daemon thread. |
Daemon.DaemonWorker |
getWorker() Accessor to obtain the Daemon worker object. |
protected void |
guardIfNeeded() If this Daemon has a Guardian and SLA policy specified, ensure that it is registered with its Guardian. |
protected void |
heartbeat() If this Daemon is being guarded, issue a heartbeat to the Guardian. |
protected void |
heartbeat(long cMillis) If this Daemon is being guarded, issue a heartbeat to the Guardian. |
protected Daemon.DaemonWorker |
instantiateWorker() Instantiate a DaemonWorker that will be used as a daemon. |
boolean |
isGuarded() Return true iff this Daemon's execution is guarded. |
boolean |
isOnWorkerThread() Indiciate if the current execution thread is a child of this daemon. |
boolean |
isRunning() Check if the daemon is running (has started and has not stopped). |
boolean |
isStopping() Check if the daemon is supposed to stop. |
void |
recover() Attempt to recover this Guardable. |
abstract void |
run() The daemon's implementation method. |
protected void |
setConfiguredName(String sName) Configure the name for the daemon. |
protected void |
setConfiguredPriority(int nPriority) Configure the priority for the daemon. |
void |
setContext(Guardian.GuardContext context) Set the guard context. |
protected void |
setGuardPolicy(Guardian guardian, long cTimeoutMillis, float flPctRecover) Set the Guardian and policy to guard this Daemon with. |
protected void |
setGuardRegisterAction(Runnable action) Set the Guardian registration action. |
void |
setThreadContextClassLoader(ClassLoader loader) Configure the context ClassLoader for the daemon thread. |
void |
shutdown(long cWait) Request the daemon to stop and wait up to the specified number of milliseconds for it to exit. |
void |
start() Performs a synchronized start of the thread if the thread is not already started. |
void |
stop() Request the daemon to stop. |
void |
terminate() Terminate this Guardable. |
protected static String |
toStateString(int nState) Convert a state value to a human-readable String. |
String |
toString() Return a human-readable String representation of the Daemon. |
Constructor Detail |
---|
public Daemon()
public Daemon(String sName)
sName
- the thread name (may be null)public Daemon(String sName, int nPriority, boolean fStart)
sName
- the thread name (may be null)nPriority
- the thread priority, between Thread.MIN_PRIORITY and Thread.MAX_PRIORITY inclusivefStart
- pass true to auto-start the thread as part of its constructionMethod Detail |
---|
public abstract void run()
An example implementation is:
while (!isStopping())
{
// do some processing
// ...
synchronized (this)
{
// wait for notification of more work
wait();
}
}
run
in interface Runnable
Thread.run()
public void setContext(Guardian.GuardContext context)
setContext
in interface Guardable
context
- the context guarding this Guardablepublic void recover()
recover
in interface Guardable
public void terminate()
terminate
in interface Guardable
public Guardian.GuardContext getContext()
getContext
in interface Guardable
public boolean isGuarded()
Guardian
.public long getMaxWaitMillis(long cDefaultMillis)
cDefaultMillis
- the default wait time to return if this Daemon is not Guardedprotected void heartbeat()
protected void heartbeat(long cMillis)
cMillis
- the number of milliseconds for which this Daemon should not be considered timed outprotected void setGuardRegisterAction(Runnable action)
action
- the Guardian registration actionprotected Runnable getGuardRegisterAction()
protected void setGuardPolicy(Guardian guardian, long cTimeoutMillis, float flPctRecover)
guardian
- the Guardian that will be guarding this DaemoncTimeoutMillis
- the timeout in ms for this Daemon, or 0 for the service guardian timeoutflPctRecover
- the recovery percentage for this Daemonprotected void guardIfNeeded()
public Thread getThread()
public Daemon.DaemonWorker getWorker()
public void start()
public boolean isRunning()
public void stop()
isStopping()
.public void shutdown(long cWait)
isStopping()
.cWait
- the maxium number of milliseconds to wait for the daemon to exit; pass zero to return immediately; pass -1 to block the calling thread until the worker finishes stoppingpublic boolean isStopping()
public boolean isOnWorkerThread()
protected int getState()
protected void finishStarting(Daemon.DaemonWorker worker)
worker
- a worker created by this daemonprotected void finishStopping(Daemon.DaemonWorker worker, long cWait)
worker
- a worker created by this daemoncWait
- the maxium number of milliseconds to wait for the specified worker to finish stopping; pass zero to return immediately; pass -1 to block the calling thread until the worker finishes stoppingprotected void changeState(int nState, Daemon.DaemonWorker worker)
nState
- one of the STATE_ enumsworker
- the new worker, if starting, otherwise the current workerprotected void setConfiguredPriority(int nPriority)
nPriority
- the thread priority for the daemonprotected int getConfiguredPriority()
protected void setConfiguredName(String sName)
sName
- the thread name for the daemonprotected String getConfiguredName()
public void setThreadContextClassLoader(ClassLoader loader)
setContextClassLoader
will be called on the daemon thread object immediately as well as during subsequent restarts.loader
- the context ClassLoader for the daemon threadpublic ClassLoader getThreadContextClassLoader()
protected Daemon.DaemonWorker instantiateWorker()
protected void configureWorker(Daemon.DaemonWorker worker)
worker
- the DaemonWorker to configurepublic String toString()
protected String getDescription()
toString()
method.protected static String toStateString(int nState)
nState
- a Daemon state, one of the STATE_* enums
|
Oracle® Coherence Java API Reference Release 3.6.0.0 E15725-01 |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |