|
Oracle® Coherence Java API Reference Release 3.6.1.0 E18814-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.DaemonWorkerThe sub-class of Thread that this Daemon uses as the actual thread of execution. |
| Constructor Summary | |
|---|---|
Daemon()Default constructor. |
|
Daemon(java.lang.String sName)Creates a Daemon with the specified name. |
|
Daemon(java.lang.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 java.lang.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 java.lang.String |
getDescription()Format the Daemon attributes into a String for inclusion in the String returned from the toString() method. |
protected java.lang.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. |
java.lang.Thread |
getThread()Accessor to obtain the Daemon thread object. |
java.lang.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(java.lang.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(java.lang.Runnable action)Set the Guardian registration action. |
void |
setThreadContextClassLoader(java.lang.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 java.lang.String |
toStateString(int nState)Convert a state value to a human-readable String. |
java.lang.String |
toString()Return a human-readable String representation of the Daemon. |
| Constructor Detail |
|---|
public Daemon()
public Daemon(java.lang.String sName)
sName - the thread name (may be null)
public Daemon(java.lang.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 construction| Method 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 java.lang.RunnableThread.run()public void setContext(Guardian.GuardContext context)
setContext in interface Guardablecontext - the context guarding this Guardablepublic void recover()
recover in interface Guardablepublic void terminate()
terminate in interface Guardablepublic Guardian.GuardContext getContext()
getContext in interface Guardablepublic 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(java.lang.Runnable action)
action - the Guardian registration actionprotected java.lang.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 java.lang.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 daemon
protected 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 stopping
protected 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(java.lang.String sName)
sName - the thread name for the daemonprotected java.lang.String getConfiguredName()
public void setThreadContextClassLoader(java.lang.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 java.lang.ClassLoader getThreadContextClassLoader()
protected Daemon.DaemonWorker instantiateWorker()
protected void configureWorker(Daemon.DaemonWorker worker)
worker - the DaemonWorker to configurepublic java.lang.String toString()
protected java.lang.String getDescription()
toString() method.protected static java.lang.String toStateString(int nState)
nState - a Daemon state, one of the STATE_* enums
|
Oracle® Coherence Java API Reference Release 3.6.1.0 E18814-01 |
|||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||