Apache Tomcat 7.0.54

org.apache.catalina.ha.session
Class ClusterManagerBase

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
All Implemented Interfaces:
PropertyChangeListener, EventListener, MBeanRegistration, ClusterManager, Lifecycle, Manager
Direct Known Subclasses:
BackupManager, DeltaManager

public abstract class ClusterManagerBase
extends ManagerBase
implements ClusterManager

Author:
Filip Hanik

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.catalina.session.ManagerBase
ManagerBase.SessionTiming
 
Field Summary
protected  CatalinaCluster cluster
          A reference to the 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, sm, 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
ClusterManagerBase()
           
 
Method Summary
protected  void clone(ClusterManagerBase copy)
           
 ClassLoader[] getClassLoaders()
           
static ClassLoader[] getClassLoaders(Container container)
           
 CatalinaCluster getCluster()
           
 ReplicationStream getReplicationStream(byte[] data)
          Open Stream and use correct ClassLoader (Container) Switch ThreadClassLoader
 ReplicationStream getReplicationStream(byte[] data, int offset, int length)
           
 String getSessionAttributeFilter()
          Return the string pattern used for including session attributes to replication.
 boolean isNotifyListenersOnReplication()
           
 void load()
          Manager implementations that also implement ClusterManager do not support local session persistence.
protected  void registerSessionAtReplicationValve(DeltaSession session)
          Register cross context session at replication valve thread local
 void setCluster(CatalinaCluster cluster)
           
 void setNotifyListenersOnReplication(boolean notifyListenersOnReplication)
           
 void setSessionAttributeFilter(String sessionAttributeFilter)
          Set the pattern used for including session attributes to replication.
protected  void startInternal()
          Sub-classes must ensure that the state is changed to LifecycleState.STARTING during the execution of this method.
protected  void stopInternal()
          Sub-classes must ensure that the state is changed to LifecycleState.STOPPING during the execution of this method.
 void unload()
          Save any currently active sessions in the appropriate persistence mechanism, if any.
 boolean willAttributeDistribute(String name)
          Check whether the given session attribute should be distributed
 
Methods inherited from class org.apache.catalina.session.ManagerBase
add, addPropertyChangeListener, backgroundProcess, changeSessionId, createEmptySession, createSession, expireSession, findSession, findSessions, generateSessionId, getActiveSessions, getClassName, getContainer, getCreationTime, getCreationTimestamp, getDistributable, getDomainInternal, getDuplicates, getEngine, getExpiredSessions, getInfo, getJvmRoute, getLastAccessedTime, getLastAccessedTimestamp, getMaxActive, getMaxActiveSessions, getMaxInactiveInterval, getName, 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, setDistributable, 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.ha.ClusterManager
cloneFromTemplate, getInvalidatedSessions, getName, messageDataReceived, requestCompleted, setName
 
Methods inherited from interface org.apache.catalina.Manager
add, addPropertyChangeListener, backgroundProcess, changeSessionId, createEmptySession, createSession, findSession, findSessions, getActiveSessions, getContainer, getDistributable, getExpiredSessions, getInfo, getMaxActive, getMaxInactiveInterval, getRejectedSessions, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdLength, getSessionMaxAliveTime, remove, remove, removePropertyChangeListener, setContainer, setDistributable, setExpiredSessions, setMaxActive, setMaxInactiveInterval, setSessionCounter, setSessionIdLength, setSessionMaxAliveTime
 

Field Detail

cluster

protected CatalinaCluster cluster
A reference to the cluster

Constructor Detail

ClusterManagerBase

public ClusterManagerBase()
Method Detail

getCluster

public CatalinaCluster getCluster()
Specified by:
getCluster in interface ClusterManager

setCluster

public void setCluster(CatalinaCluster cluster)
Specified by:
setCluster in interface ClusterManager

isNotifyListenersOnReplication

public boolean isNotifyListenersOnReplication()
Specified by:
isNotifyListenersOnReplication in interface ClusterManager

setNotifyListenersOnReplication

public void setNotifyListenersOnReplication(boolean notifyListenersOnReplication)

getSessionAttributeFilter

public String getSessionAttributeFilter()
Return the string pattern used for including session attributes to replication.

Returns:
the sessionAttributeFilter

setSessionAttributeFilter

public void setSessionAttributeFilter(String sessionAttributeFilter)
Set the pattern used for including session attributes to replication. If not set, all session attributes will be eligible for replication.

E.g. ^(userName|sessionHistory)$

Parameters:
sessionAttributeFilter - the filter name pattern to set

willAttributeDistribute

public boolean willAttributeDistribute(String name)
Check whether the given session attribute should be distributed

Returns:
true if the attribute should be distributed

getClassLoaders

public static ClassLoader[] getClassLoaders(Container container)

getClassLoaders

public ClassLoader[] getClassLoaders()

getReplicationStream

public ReplicationStream getReplicationStream(byte[] data)
                                       throws IOException
Open Stream and use correct ClassLoader (Container) Switch ThreadClassLoader

Specified by:
getReplicationStream in interface ClusterManager
Parameters:
data -
Returns:
The object input stream
Throws:
IOException

getReplicationStream

public ReplicationStream getReplicationStream(byte[] data,
                                              int offset,
                                              int length)
                                       throws IOException
Specified by:
getReplicationStream in interface ClusterManager
Throws:
IOException

load

public void load()
Manager implementations that also implement ClusterManager do not support local session persistence.

Specified by:
load in interface Manager

unload

public void unload()
Description copied from interface: Manager
Save any currently active sessions in the appropriate persistence mechanism, if any. If persistence is not supported, this method returns without doing anything.

Specified by:
unload in interface Manager

clone

protected void clone(ClusterManagerBase copy)

registerSessionAtReplicationValve

protected void registerSessionAtReplicationValve(DeltaSession session)
Register cross context session at replication valve thread local

Parameters:
session - cross context session

startInternal

protected void startInternal()
                      throws LifecycleException
Description copied from class: LifecycleBase
Sub-classes must ensure that the state is changed to LifecycleState.STARTING during the execution of this method. Changing state will trigger the Lifecycle.START_EVENT event. If a component fails to start it may either throw a LifecycleException which will cause it's parent to fail to start or it can place itself in the error state in which case LifecycleBase.stop() will be called on the failed component but the parent component will continue to start normally.

Overrides:
startInternal in class ManagerBase
Throws:
LifecycleException

stopInternal

protected void stopInternal()
                     throws LifecycleException
Description copied from class: LifecycleBase
Sub-classes must ensure that the state is changed to LifecycleState.STOPPING during the execution of this method. Changing state will trigger the Lifecycle.STOP_EVENT event.

Overrides:
stopInternal in class ManagerBase
Throws:
LifecycleException

Apache Tomcat 7.0.54

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