Package org.apache.catalina.ha.session

## Class BackupManager

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.session.ManagerBase
      - - org.apache.catalina.ha.session.ClusterManagerBase
        - - org.apache.catalina.ha.session.BackupManager

All Implemented Interfaces:
  `javax.management.MBeanRegistration`, `DistributedManager`, `ClusterManager`, `JmxEnabled`, `Lifecycle`, `Manager`, `AbstractReplicatedMap.MapOwner`

    public class BackupManager
    extends ClusterManagerBase
    implements AbstractReplicatedMap.MapOwner, DistributedManager

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.catalina.session.ManagerBase

`ManagerBase.SessionTiming`

### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

`Lifecycle.SingleUse`

### Field Summary

Fields
`protected static long` `DEFAULT_REPL_TIMEOUT`
`protected java.lang.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

`duplicates, expiredSessions, maxActive, maxActiveSessions, processExpiresFrequency, processingTime, rejectedSessions, secureRandomAlgorithm, secureRandomClass, secureRandomProvider, sessionCounter, sessionCreationTiming, sessionExpirationTiming, sessionIdGenerator, sessionIdGeneratorClass, 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

Constructors
`BackupManager()` Constructor, just calls super()

### Method Summary

All Methods Instance Methods Concrete Methods
`ClusterManager` `cloneFromTemplate()`
`Session` `createEmptySession()` Get a session from the recycled ones or create a new empty one.
`long` `getAccessTimeout()`
`int` `getActiveSessionsFull()` Returns the total session count for primary, backup and proxy.
`java.lang.String[]` `getInvalidatedSessions()` When the manager expires session not tied to a request.
`java.lang.String` `getMapName()`
`int` `getMapSendOptions()`
`java.lang.String` `getName()` Return the name of the manager, at host /context name and at engine hostname+/context.
`long` `getRpcTimeout()`
`java.util.Set<java.lang.String>` `getSessionIdsFull()` Returns the list of all sessions IDS (primary, backup and proxy).
`boolean` `isTerminateOnStartFailure()`
`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` `objectMadePrimary​(java.lang.Object key, java.lang.Object value)`
`ClusterMessage` `requestCompleted​(java.lang.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` `setAccessTimeout​(long accessTimeout)`
`void` `setMapSendOptions​(int mapSendOptions)`
`void` `setName​(java.lang.String name)` Set the name of the manager, at host /context name and at engine hostname+/context
`void` `setRpcTimeout​(long rpcTimeout)`
`void` `setTerminateOnStartFailure​(boolean terminateOnStartFailure)`
`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, getDeltaRequestPool, getReplicationStream, getReplicationStream, isNotifyListenersOnReplication, isRecordAllActions, load, registerSessionAtReplicationValve, setCluster, setNotifyListenersOnReplication, setRecordAllActions, unload`

### Methods inherited from class org.apache.catalina.session.ManagerBase

`add, addPropertyChangeListener, backgroundProcess, changeSessionId, changeSessionId, changeSessionId, createSession, expireSession, findSession, findSessions, generateSessionId, getActiveSessions, getClassName, getContext, getCreationTime, getCreationTimestamp, getDomainInternal, getDuplicates, getEngine, getExpiredSessions, getJvmRoute, getLastAccessedTime, getLastAccessedTimestamp, getMaxActive, getMaxActiveSessions, getNewSession, getObjectNameKeyProperties, getPersistAuthentication, getPersistAuthenticationNotes, getProcessExpiresFrequency, getProcessingTime, getRejectedSessions, getSecureRandomAlgorithm, getSecureRandomClass, getSecureRandomProvider, getSession, getSessionAttribute, getSessionAttributeNameFilter, getSessionAttributeNamePattern, getSessionAttributeValueClassNameFilter, getSessionAttributeValueClassNamePattern, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdGenerator, getSessionMaxAliveTime, getThisAccessedTime, getThisAccessedTimestamp, getWarnOnSessionAttributeFilterFailure, initInternal, listSessionIds, processExpires, remove, remove, removePropertyChangeListener, rotateSessionId, setContext, setDuplicates, setExpiredSessions, setMaxActive, setMaxActiveSessions, setPersistAuthentication, setPersistAuthenticationNotes, setProcessExpiresFrequency, setProcessingTime, setSecureRandomAlgorithm, setSecureRandomClass, setSecureRandomProvider, setSessionAttributeNameFilter, setSessionAttributeValueClassNameFilter, setSessionCounter, setSessionIdGenerator, setSessionMaxAliveTime, setWarnOnSessionAttributeFilterFailure, toString, updateSessionMaxAliveTime, willAttributeDistribute`

### 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, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, 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, changeSessionId, createSession, findSession, findSessions, getActiveSessions, getContext, getExpiredSessions, getMaxActive, getRejectedSessions, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdGenerator, getSessionMaxAliveTime, remove, remove, removePropertyChangeListener, setContext, setExpiredSessions, setMaxActive, setSessionCounter, setSessionIdGenerator, setSessionMaxAliveTime, willAttributeDistribute`

### Field Detail

#### sm

    protected static final StringManager sm

The string manager for this package.

#### DEFAULT_REPL_TIMEOUT

    protected static final long DEFAULT_REPL_TIMEOUT

See Also:
  Constant Field Values

#### name

    protected java.lang.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.

#### requestCompleted

    public ClusterMessage requestCompleted​(java.lang.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.

#### objectMadePrimary

    public void objectMadePrimary​(java.lang.Object key,
                                  java.lang.Object value)

Specified by:
  `objectMadePrimary` in interface `AbstractReplicatedMap.MapOwner`

#### createEmptySession

    public Session createEmptySession()

Description copied from interface: `Manager`
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`
Returns:
  An empty Session object

#### getName

    public java.lang.String getName()

Description copied from interface: `ClusterManager`
Return the name of the manager, at host /context name and at engine hostname+/context.

Specified by:
  `getName` in interface `ClusterManager`
Overrides:
  `getName` in class `ManagerBase`
Returns:
  The descriptive short name of this Manager implementation.

#### 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 `ClusterManagerBase`
Throws:
  `LifecycleException` - if this component detects a fatal error that prevents this component from being used

#### getMapName

    public java.lang.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 `ClusterManagerBase`
Throws:
  `LifecycleException` - if this component detects a fatal error that prevents this component from being used

#### setName

    public void setName​(java.lang.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`
Parameters:
  `name` - The manager name

#### setMapSendOptions

    public void setMapSendOptions​(int mapSendOptions)

#### getMapSendOptions

    public int getMapSendOptions()

#### setRpcTimeout

    public void setRpcTimeout​(long rpcTimeout)

#### getRpcTimeout

    public long getRpcTimeout()

#### setTerminateOnStartFailure

    public void setTerminateOnStartFailure​(boolean terminateOnStartFailure)

#### isTerminateOnStartFailure

    public boolean isTerminateOnStartFailure()

#### getAccessTimeout

    public long getAccessTimeout()

#### setAccessTimeout

    public void setAccessTimeout​(long accessTimeout)

#### getInvalidatedSessions

    public java.lang.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 java.util.Set<java.lang.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.