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:
    java.beans.PropertyChangeListener, java.util.EventListener, javax.management.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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static long` | `DEFAULT_REPL_TIMEOUT`
    `protected boolean` | `mExpireSessionsOnShutdown` Deprecated. Unused - will be removed in Tomcat 8.0.x
    `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

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

    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.
    `int` | `getActiveSessionsFull()` Returns the total session count for primary, backup and proxy.
    `boolean` | `getExpireSessionsOnShutdown()` Deprecated. Unused - will be removed in Tomcat 8.0.x
    `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 descriptive short name of this Manager implementation.
    `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` | `objectMadePrimay(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` | `setDistributable(boolean dist)` Set the distributable flag for the sessions supported by this Manager.
    `void` | `setExpireSessionsOnShutdown(boolean expireSessionsOnShutdown)` Deprecated. Unused - will be removed in Tomcat 8.0.x
    `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, getReplicationStream, getReplicationStream, getSessionAttributeFilter, isNotifyListenersOnReplication, isRecordAllActions, load, registerSessionAtReplicationValve, setCluster, setNotifyListenersOnReplication, setRecordAllActions, 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, getSessionIdGenerator, getSessionIdLength, getSessionMaxAliveTime, getThisAccessedTime, getThisAccessedTimestamp, initInternal, listSessionIds, processExpires, propertyChange, remove, remove, removePropertyChangeListener, setContainer, setDuplicates, setExpiredSessions, setMaxActive, setMaxActiveSessions, setMaxInactiveInterval, setProcessExpiresFrequency, setProcessingTime, setSecureRandomAlgorithm, setSecureRandomClass, setSecureRandomProvider, setSessionCounter, setSessionIdGenerator, 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

          @Deprecated
          protected boolean mExpireSessionsOnShutdown

      Deprecated. Unused - will be removed in Tomcat 8.0.x
      Set to true if we don't want the sessions to expire on shutdown

    - #### 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.

    - #### setExpireSessionsOnShutdown

          @Deprecated
          public void setExpireSessionsOnShutdown(boolean expireSessionsOnShutdown)

      Deprecated. Unused - will be removed in Tomcat 8.0.x

    - #### getExpireSessionsOnShutdown

          @Deprecated
          public boolean getExpireSessionsOnShutdown()

      Deprecated. Unused - will be removed in Tomcat 8.0.x

    - #### 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.

    - #### objectMadePrimay

          public void objectMadePrimay(java.lang.Object key,
                              java.lang.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 java.lang.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 `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

    - #### 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(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`

    - #### 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()

    - #### 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.

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