com.sleepycat.je.rep.impl.node
Class Replica.ReplayThread

java.lang.Object
  extended by java.lang.Thread
      extended by com.sleepycat.je.utilint.StoppableThread
          extended by com.sleepycat.je.rep.impl.node.Replica.ReplayThread
All Implemented Interfaces:
ExceptionListenerUser, Runnable
Enclosing class:
Replica

 class Replica.ReplayThread
extends StoppableThread

The thread responsible for the replay of messages delivered over the replication stream. Reading and replay are done in separate threads for two reasons: 1) It allows the two activities to make independent progress. The network can be read and messages assembled even if the replay activity has stalled. 2) The two threads permit use of two cores to perform the replay thus making it less likely that cpu is the replay bottleneck.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
(package private)  com.sleepycat.je.rep.impl.node.Replica.ReplayExitType exitRequest
          Set asynchronously when a shutdown is being requested.
 
Fields inherited from class com.sleepycat.je.utilint.StoppableThread
envImpl
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
protected Replica.ReplayThread(EnvironmentImpl envImpl, String threadName)
           
 
Method Summary
protected  Logger getLogger()
           
protected  int initiateSoftShutdown()
          Threads that use shutdownThread() must define this method.
 void run()
           
 
Methods inherited from class com.sleepycat.je.utilint.StoppableThread
cleanup, getSavedShutdownException, getTotalCpuTime, getTotalUserTime, isShutdown, saveShutdownException, setExceptionListener, shutdownDone, shutdownThread
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, 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
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

exitRequest

volatile com.sleepycat.je.rep.impl.node.Replica.ReplayExitType exitRequest
Set asynchronously when a shutdown is being requested.

Constructor Detail

Replica.ReplayThread

protected Replica.ReplayThread(EnvironmentImpl envImpl,
                               String threadName)
Method Detail

initiateSoftShutdown

protected int initiateSoftShutdown()
Description copied from class: StoppableThread
Threads that use shutdownThread() must define this method. It's invoked by shutdownThread as an attempt at a soft shutdown. This method makes provisions for this thread to exit on its own. The technique used to make the thread exit can vary based upon the nature of the service being provided by the thread. For example, the thread may be known to poll some shutdown flag on a periodic basis, or it may detect that a channel that it waits on has been closed by this method.

Overrides:
initiateSoftShutdown in class StoppableThread
Returns:
the amount of time in ms that the shutdownThread method will wait for the thread to exit. A -ve value means that the method will not wait. A zero value means it will wait indefinitely.

run

public void run()
Specified by:
run in interface Runnable
Overrides:
run in class Thread

getLogger

protected Logger getLogger()
Specified by:
getLogger in class StoppableThread
Returns:
a logger to use when logging uncaught exceptions.


Copyright (c) 2004-2012 Oracle. All rights reserved.