Apache Tomcat 7.0.28

org.apache.catalina.ha.session
Class BackupManager

java.lang.Object
  extended by org.apache.catalina.util.LifecycleBase
      extended by org.apache.catalina.util.LifecycleMBeanBase
          extended by org.apache.catalina.session.ManagerBase
              extended by org.apache.catalina.ha.session.ClusterManagerBase
                  extended by org.apache.catalina.ha.session.BackupManager
All Implemented Interfaces:
PropertyChangeListener, EventListener, MBeanRegistration, DistributedManager, ClusterManager, Lifecycle, Manager, AbstractReplicatedMap.MapOwner

public class BackupManager
extends ClusterManagerBase
implements AbstractReplicatedMap.MapOwner, DistributedManager

Version:
1.0
Author:
Filip Hanik

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.catalina.session.ManagerBase
ManagerBase.SessionTiming
 
Field Summary
protected static long DEFAULT_REPL_TIMEOUT
           
protected  boolean mExpireSessionsOnShutdown
          Set to true if we don't want the sessions to expire on shutdown
protected  String name
          The name of this manager
protected static StringManager sm
          The string manager for this package.
 
Fields inherited from class org.apache.catalina.ha.session.ClusterManagerBase
cluster
 
Fields inherited from class org.apache.catalina.session.ManagerBase
container, distributable, duplicates, expiredSessions, maxActive, maxActiveSessions, maxInactiveInterval, processExpiresFrequency, processingTime, rejectedSessions, secureRandomAlgorithm, secureRandomClass, secureRandomProvider, sessionCounter, sessionCreationTiming, sessionExpirationTiming, sessionIdGenerator, sessionIdLength, sessionMaxAliveTime, sessions, support, TIMING_STATS_CACHE_SIZE
 
Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase
mserver
 
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
 
Constructor Summary
BackupManager()
          Constructor, just calls super()
 
Method Summary
 ClusterManager cloneFromTemplate()
           
 Session createEmptySession()
          Get a session from the recycled ones or create a new empty one.
 int getActiveSessionsFull()
          Returns the total session count for primary, backup and proxy.
 boolean getExpireSessionsOnShutdown()
           
 String[] getInvalidatedSessions()
          When the manager expires session not tied to a request.
 String getMapName()
           
 int getMapSendOptions()
           
 String getName()
          Return the descriptive short name of this Manager implementation.
 long getRpcTimeout()
           
 Set<String> getSessionIdsFull()
          Returns the list of all sessions IDS (primary, backup and proxy).
 void messageDataReceived(ClusterMessage msg)
          A message was received from another node, this is the callback method to implement if you are interested in receiving replication messages.
 void objectMadePrimay(Object key, Object value)
           
 ClusterMessage requestCompleted(String sessionId)
          When the request has been completed, the replication valve will notify the manager, and the manager will decide whether any replication is needed or not.
 void setDistributable(boolean dist)
          Set the distributable flag for the sessions supported by this Manager.
 void setExpireSessionsOnShutdown(boolean expireSessionsOnShutdown)
           
 void setMapSendOptions(int mapSendOptions)
           
 void setName(String name)
          Set the name of the manager, at host /context name and at engine hostname+/context
 void setRpcTimeout(long rpcTimeout)
           
protected  void startInternal()
          Start this component and implement the requirements of LifecycleBase.startInternal().
protected  void stopInternal()
          Stop this component and implement the requirements of LifecycleBase.stopInternal().
 
Methods inherited from class org.apache.catalina.ha.session.ClusterManagerBase
clone, getClassLoaders, getClassLoaders, getCluster, getReplicationStream, getReplicationStream, getSessionAttributeFilter, isNotifyListenersOnReplication, load, setCluster, setNotifyListenersOnReplication, setSessionAttributeFilter, unload, willAttributeDistribute
 
Methods inherited from class org.apache.catalina.session.ManagerBase
add, addPropertyChangeListener, backgroundProcess, changeSessionId, createSession, expireSession, findSession, findSessions, generateSessionId, getActiveSessions, getClassName, getContainer, getCreationTime, getCreationTimestamp, getDistributable, getDomainInternal, getDuplicates, getEngine, getExpiredSessions, getInfo, getJvmRoute, getLastAccessedTime, getLastAccessedTimestamp, getMaxActive, getMaxActiveSessions, getMaxInactiveInterval, getNewSession, getObjectNameKeyProperties, getProcessExpiresFrequency, getProcessingTime, getRejectedSessions, getSecureRandomAlgorithm, getSecureRandomClass, getSecureRandomProvider, getSession, getSessionAttribute, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdLength, getSessionMaxAliveTime, getThisAccessedTime, getThisAccessedTimestamp, initInternal, listSessionIds, processExpires, propertyChange, remove, remove, removePropertyChangeListener, setContainer, setDuplicates, setExpiredSessions, setMaxActive, setMaxActiveSessions, setMaxInactiveInterval, setProcessExpiresFrequency, setProcessingTime, setSecureRandomAlgorithm, setSecureRandomClass, setSecureRandomProvider, setSessionCounter, setSessionIdLength, setSessionMaxAliveTime, toString, updateSessionMaxAliveTime
 
Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister
 
Methods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, init, removeLifecycleListener, setState, setState, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.catalina.Manager
add, addPropertyChangeListener, backgroundProcess, changeSessionId, createSession, findSession, findSessions, getActiveSessions, getContainer, getDistributable, getExpiredSessions, getInfo, getMaxActive, getMaxInactiveInterval, getRejectedSessions, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdLength, getSessionMaxAliveTime, remove, remove, removePropertyChangeListener, setContainer, setExpiredSessions, setMaxActive, setMaxInactiveInterval, setSessionCounter, setSessionIdLength, setSessionMaxAliveTime
 

Field Detail

sm

protected static final StringManager sm
The string manager for this package.


DEFAULT_REPL_TIMEOUT

protected static long DEFAULT_REPL_TIMEOUT

mExpireSessionsOnShutdown

protected boolean mExpireSessionsOnShutdown
Set to true if we don't want the sessions to expire on shutdown


name

protected String name
The name of this manager

Constructor Detail

BackupManager

public BackupManager()
Constructor, just calls super()

Method Detail

messageDataReceived

public void messageDataReceived(ClusterMessage msg)
Description copied from interface: ClusterManager
A message was received from another node, this is the callback method to implement if you are interested in receiving replication messages.

Specified by:
messageDataReceived in interface ClusterManager
Parameters:
msg - - the message received.

setExpireSessionsOnShutdown

public void setExpireSessionsOnShutdown(boolean expireSessionsOnShutdown)

getExpireSessionsOnShutdown

public boolean getExpireSessionsOnShutdown()

requestCompleted

public ClusterMessage requestCompleted(String sessionId)
Description copied from interface: ClusterManager
When the request has been completed, the replication valve will notify the manager, and the manager will decide whether any replication is needed or not. If there is a need for replication, the manager will create a session message and that will be replicated. The cluster determines where it gets sent.

Specified by:
requestCompleted in interface ClusterManager
Parameters:
sessionId - - the sessionId that just completed.
Returns:
a SessionMessage to be sent.

objectMadePrimay

public void objectMadePrimay(Object key,
                             Object value)
Specified by:
objectMadePrimay in interface AbstractReplicatedMap.MapOwner

createEmptySession

public Session createEmptySession()
Description copied from class: ManagerBase
Get a session from the recycled ones or create a new empty one. The PersistentManager manager does not need to create session data because it reads it from the Store.

Specified by:
createEmptySession in interface Manager
Overrides:
createEmptySession in class ManagerBase

getName

public String getName()
Description copied from class: ManagerBase
Return the descriptive short name of this Manager implementation.

Specified by:
getName in interface ClusterManager
Overrides:
getName in class ManagerBase
Returns:
String

startInternal

protected void startInternal()
                      throws LifecycleException
Start this component and implement the requirements of LifecycleBase.startInternal(). Starts the cluster communication channel, this will connect with the other nodes in the cluster, and request the current session state to be transferred to this node.

Overrides:
startInternal in class ManagerBase
Throws:
LifecycleException - if this component detects a fatal error that prevents this component from being used

getMapName

public String getMapName()

stopInternal

protected void stopInternal()
                     throws LifecycleException
Stop this component and implement the requirements of LifecycleBase.stopInternal(). This will disconnect the cluster communication channel and stop the listener thread.

Overrides:
stopInternal in class ManagerBase
Throws:
LifecycleException - if this component detects a fatal error that prevents this component from being used

setDistributable

public void setDistributable(boolean dist)
Description copied from class: ManagerBase
Set the distributable flag for the sessions supported by this Manager. If this flag is set, all user data objects added to sessions associated with this manager must implement Serializable.

Specified by:
setDistributable in interface Manager
Overrides:
setDistributable in class ManagerBase
Parameters:
dist - The new distributable flag

setName

public void setName(String name)
Description copied from interface: ClusterManager
Set the name of the manager, at host /context name and at engine hostname+/context

Specified by:
setName in interface ClusterManager

setMapSendOptions

public void setMapSendOptions(int mapSendOptions)

getMapSendOptions

public int getMapSendOptions()

setRpcTimeout

public void setRpcTimeout(long rpcTimeout)

getRpcTimeout

public long getRpcTimeout()

getInvalidatedSessions

public String[] getInvalidatedSessions()
Description copied from interface: ClusterManager
When the manager expires session not tied to a request. The cluster will periodically ask for a list of sessions that should expire and that should be sent across the wire.

Specified by:
getInvalidatedSessions in interface ClusterManager
Returns:
String[] The invalidated sessions

cloneFromTemplate

public ClusterManager cloneFromTemplate()
Specified by:
cloneFromTemplate in interface ClusterManager

getActiveSessionsFull

public int getActiveSessionsFull()
Description copied from interface: DistributedManager
Returns the total session count for primary, backup and proxy.

Specified by:
getActiveSessionsFull in interface DistributedManager
Returns:
The total session count across the cluster.

getSessionIdsFull

public Set<String> getSessionIdsFull()
Description copied from interface: DistributedManager
Returns the list of all sessions IDS (primary, backup and proxy).

Specified by:
getSessionIdsFull in interface DistributedManager
Returns:
The complete set of sessions IDs across the cluster.

Apache Tomcat 7.0.28

Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.