Class ClusterManagerBase
java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.LifecycleMBeanBase
org.apache.catalina.session.ManagerBase
org.apache.catalina.ha.session.ClusterManagerBase
- All Implemented Interfaces:
MBeanRegistration, ClusterManager, JmxEnabled, Lifecycle, Manager
- Direct Known Subclasses:
BackupManager, DeltaManager
Base class for cluster session managers. Provides common functionality for
session replication and clustering.
-
Nested Class Summary
Nested classes/interfaces inherited from class ManagerBase
ManagerBase.SessionTimingNested classes/interfaces inherited from interface Lifecycle
Lifecycle.SingleUse -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected CatalinaClusterA reference to the clusterprotected static final StringManagerString manager for this class.Fields inherited from class ManagerBase
duplicates, expiredSessions, maxActive, maxActiveSessions, processExpiresFrequency, processingTime, rejectedSessions, secureRandomAlgorithm, secureRandomClass, secureRandomProvider, sessionCounter, sessionCreationTiming, sessionExpirationTiming, sessionIdGenerator, sessionIdGeneratorClass, sessionMaxAliveTime, sessions, support, TIMING_STATS_CACHE_SIZEFields inherited from interface 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidclone(ClusterManagerBase copy) Clone the configuration from this manager to the specified copy.Returns the class loaders for this manager's context.static ClassLoader[]getClassLoaders(Context context) Returns the class loaders for the specified context.Returns the cluster associated with this manager.protected SynchronizedStack<DeltaRequest> Returns the pool of DeltaRequest objects.getReplicationStream(byte[] data) Open stream and use correct ClassLoader (Container), switching thread context class loader.getReplicationStream(byte[] data, int offset, int length) Open stream and use correct ClassLoader (Container), switching thread context class loader.booleanReturns whether listeners are notified on replication.booleanReturns whether all session attribute actions should be recorded.voidload()Managerimplementations that also implementClusterManagerdo not support local session persistence.protected voidRegister cross context session at replication valve thread localvoidsetCluster(CatalinaCluster cluster) Set the cluster associated with this manager.voidsetNotifyListenersOnReplication(boolean notifyListenersOnReplication) Sets whether listeners should be notified on replication.voidsetRecordAllActions(boolean recordAllActions) Sets whether all session attribute actions should be recorded.protected voidSubclasses must ensure that the state is changed toLifecycleState.STARTINGduring the execution of this method.protected voidSubclasses must ensure that the state is changed toLifecycleState.STOPPINGduring the execution of this method.voidunload()Managerimplementations that also implementClusterManagerdo not support local session persistence.Methods inherited from class ManagerBase
add, addPropertyChangeListener, backgroundProcess, changeSessionId, changeSessionId, createEmptySession, createSession, expireSession, findSession, findSessions, generateSessionId, getActiveSessions, getClassName, getContext, getCreationTime, getCreationTimestamp, getDomainInternal, getDuplicates, getEngine, getExpiredSessions, getJvmRoute, getLastAccessedTime, getLastAccessedTimestamp, getMaxActive, getMaxActiveSessions, getName, getNewSession, getNotifyAttributeListenerOnUnchangedValue, getNotifyBindingListenerOnUnchangedValue, getObjectNameKeyProperties, getPersistAuthentication, getProcessExpiresFrequency, getProcessingTime, getRejectedSessions, getSecureRandomAlgorithm, getSecureRandomClass, getSecureRandomProvider, getSession, getSessionActivityCheck, getSessionAttribute, getSessionAttributeNameFilter, getSessionAttributeNamePattern, getSessionAttributeValueClassNameFilter, getSessionAttributeValueClassNamePattern, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdGenerator, getSessionLastAccessAtStart, getSessionMaxAliveTime, getThisAccessedTime, getThisAccessedTimestamp, getWarnOnSessionAttributeFilterFailure, initInternal, listSessionIds, processExpires, remove, remove, removePropertyChangeListener, rotateSessionId, setContext, setDuplicates, setExpiredSessions, setMaxActive, setMaxActiveSessions, setNotifyAttributeListenerOnUnchangedValue, setNotifyBindingListenerOnUnchangedValue, setPersistAuthentication, setProcessExpiresFrequency, setProcessingTime, setSecureRandomAlgorithm, setSecureRandomClass, setSecureRandomProvider, setSessionActivityCheck, setSessionAttributeNameFilter, setSessionAttributeValueClassNameFilter, setSessionCounter, setSessionIdGenerator, setSessionLastAccessAtStart, setSessionMaxAliveTime, setWarnOnSessionAttributeFilterFailure, toString, updateSessionMaxAliveTime, willAttributeDistributeMethods inherited from class LifecycleMBeanBase
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregisterMethods inherited from class LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stopMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ClusterManager
cloneFromTemplate, getInvalidatedSessions, getName, messageDataReceived, requestCompleted, setNameMethods inherited from interface Manager
add, addPropertyChangeListener, backgroundProcess, changeSessionId, createEmptySession, createSession, findSession, findSessions, getActiveSessions, getContext, getExpiredSessions, getMaxActive, getNotifyAttributeListenerOnUnchangedValue, getNotifyBindingListenerOnUnchangedValue, getRejectedSessions, getSessionActivityCheck, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdGenerator, getSessionLastAccessAtStart, getSessionMaxAliveTime, remove, remove, removePropertyChangeListener, rotateSessionId, setContext, setExpiredSessions, setMaxActive, setNotifyAttributeListenerOnUnchangedValue, setNotifyBindingListenerOnUnchangedValue, setSessionActivityCheck, setSessionCounter, setSessionIdGenerator, setSessionLastAccessAtStart, setSessionMaxAliveTime, willAttributeDistribute
-
Field Details
-
sm
String manager for this class. -
cluster
A reference to the cluster
-
-
Constructor Details
-
ClusterManagerBase
public ClusterManagerBase()Default constructor for ClusterManagerBase.
-
-
Method Details
-
getDeltaRequestPool
Returns the pool of DeltaRequest objects.- Returns:
- the delta request pool
-
getCluster
Description copied from interface:ClusterManagerReturns the cluster associated with this manager.- Specified by:
getClusterin interfaceClusterManager- Returns:
- the cluster associated with this manager
-
setCluster
Description copied from interface:ClusterManagerSet the cluster associated with this manager.- Specified by:
setClusterin interfaceClusterManager- Parameters:
cluster- the cluster
-
isNotifyListenersOnReplication
public boolean isNotifyListenersOnReplication()Description copied from interface:ClusterManagerReturns whether listeners are notified on replication.- Specified by:
isNotifyListenersOnReplicationin interfaceClusterManager- Returns:
trueif listeners are notified on replication
-
setNotifyListenersOnReplication
public void setNotifyListenersOnReplication(boolean notifyListenersOnReplication) Sets whether listeners should be notified on replication.- Parameters:
notifyListenersOnReplication- the new value
-
isRecordAllActions
public boolean isRecordAllActions()Returns whether all session attribute actions should be recorded.- Returns:
trueif all actions are recorded
-
setRecordAllActions
public void setRecordAllActions(boolean recordAllActions) Sets whether all session attribute actions should be recorded.- Parameters:
recordAllActions- the new value
-
getClassLoaders
Returns the class loaders for the specified context.- Parameters:
context- the context- Returns:
- the array of class loaders
-
getClassLoaders
Returns the class loaders for this manager's context.- Returns:
- the array of class loaders
-
getReplicationStream
Description copied from interface:ClusterManagerOpen stream and use correct ClassLoader (Container), switching thread context class loader.- Specified by:
getReplicationStreamin interfaceClusterManager- Parameters:
data- the data- Returns:
- the object input stream
- Throws:
IOException- An error occurred
-
getReplicationStream
public ReplicationStream getReplicationStream(byte[] data, int offset, int length) throws IOException Description copied from interface:ClusterManagerOpen stream and use correct ClassLoader (Container), switching thread context class loader.- Specified by:
getReplicationStreamin interfaceClusterManager- Parameters:
data- the dataoffset- the offset in the data arraylength- the data length- Returns:
- the object input stream
- Throws:
IOException- An error occurred
-
load
public void load()Managerimplementations that also implementClusterManagerdo not support local session persistence. -
unload
public void unload()Managerimplementations that also implementClusterManagerdo not support local session persistence. -
clone
Clone the configuration from this manager to the specified copy.- Parameters:
copy- the manager to clone to
-
registerSessionAtReplicationValve
Register cross context session at replication valve thread local- Parameters:
session- cross context session
-
startInternal
Description copied from class:LifecycleBaseSubclasses must ensure that the state is changed toLifecycleState.STARTINGduring the execution of this method. Changing state will trigger theLifecycle.START_EVENTevent. If a component fails to start it may either throw aLifecycleExceptionwhich will cause it's parent to fail to start, or it can place itself in the error state in which caseLifecycleBase.stop()will be called on the failed component but the parent component will continue to start normally.- Overrides:
startInternalin classManagerBase- Throws:
LifecycleException- Start error occurred
-
stopInternal
Description copied from class:LifecycleBaseSubclasses must ensure that the state is changed toLifecycleState.STOPPINGduring the execution of this method. Changing state will trigger theLifecycle.STOP_EVENTevent.- Overrides:
stopInternalin classManagerBase- Throws:
LifecycleException- Stop error occurred
-