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:
    MBeanRegistration, DistributedManager, ClusterManager, JmxEnabled, Lifecycle, Manager, AbstractReplicatedMap.MapOwner

      public class BackupManager
      extends ClusterManagerBase
      implements AbstractReplicatedMap.MapOwner, DistributedManager

  Version:
    1.0

- - ### 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
    Modifier and Type | Field and Description
    --- | ---
    `protected static long` | `DEFAULT_REPL_TIMEOUT`
    `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

      `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
    Constructor and Description
    `BackupManager()` Constructor, just calls super()

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `String[]` | `getInvalidatedSessions()` When the manager expires session not tied to a request.
    `String` | `getMapName()`
    `int` | `getMapSendOptions()`
    `String` | `getName()` Return the name of the manager, at host /context name and at engine hostname+/context.
    `long` | `getRpcTimeout()`
    `Set<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(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` | `setAccessTimeout(long accessTimeout)`
    `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)`
    `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, 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, 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 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(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(Object key,
                               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 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 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(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 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.

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