org.apache.catalina.session

## Class StandardManager

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.util.LifecycleMBeanBase
    - - org.apache.catalina.session.ManagerBase
      - - org.apache.catalina.session.StandardManager

- All Implemented Interfaces:
    MBeanRegistration, JmxEnabled, Lifecycle, Manager

      public class StandardManager
      extends ManagerBase

  Standard implementation of the Manager interface that provides simple session persistence across restarts of this component (such as when the entire server is shut down and restarted, or when a particular web application is reloaded.

  IMPLEMENTATION NOTE: Correct behavior of session storing and reloading depends upon external calls to the `start()` and `stop()` methods of this class at the correct times.

  Author:
    Craig R. McClanahan

- - ### 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 String` | `name` The descriptive name of this Manager implementation (for logging).
    `protected String` | `pathname` Path name of the disk file in which active sessions are saved when we stop, and from which these sessions are loaded when we start.

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

    Constructors
    Constructor and Description
    `StandardManager()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `doLoad()` Load any currently active sessions that were previously unloaded to the appropriate persistence mechanism, if any.
    `protected void` | `doUnload()` Save any currently active sessions in the appropriate persistence mechanism, if any.
    `protected File` | `file()` Return a File object representing the pathname to our persistence file, if any.
    `String` | `getName()`
    `String` | `getPathname()`
    `void` | `load()` Load any currently active sessions that were previously unloaded to the appropriate persistence mechanism, if any.
    `void` | `setPathname(String pathname)` Set the session persistence pathname to the specified value.
    `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()`.
    `void` | `unload()` Save any currently active sessions in the appropriate persistence mechanism, if any.

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

      `add, addPropertyChangeListener, backgroundProcess, changeSessionId, changeSessionId, changeSessionId, createEmptySession, createSession, expireSession, findSession, findSessions, generateSessionId, getActiveSessions, getClassName, getContext, getCreationTime, getCreationTimestamp, getDomainInternal, getDuplicates, getEngine, getExpiredSessions, getJvmRoute, getLastAccessedTime, getLastAccessedTimestamp, getMaxActive, getMaxActiveSessions, getNewSession, getNotifyAttributeListenerOnUnchangedValue, getNotifyBindingListenerOnUnchangedValue, 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, setNotifyAttributeListenerOnUnchangedValue, setNotifyBindingListenerOnUnchangedValue, 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, 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`

- - ### Field Detail

    - #### name

          protected static final String name

      The descriptive name of this Manager implementation (for logging).
      See Also:
        Constant Field Values

    - #### pathname

          protected String pathname

      Path name of the disk file in which active sessions are saved when we stop, and from which these sessions are loaded when we start. A `null` value indicates that no persistence is desired. If this pathname is relative, it will be resolved against the temporary working directory provided by our context, available via the `javax.servlet.context.tempdir` context attribute.

  - ### Constructor Detail

    - #### StandardManager

          public StandardManager()

  - ### Method Detail

    - #### getName

          public String getName()

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

    - #### getPathname

          public String getPathname()

      Returns:
        The session persistence pathname, if any.

    - #### setPathname

          public void setPathname(String pathname)

      Set the session persistence pathname to the specified value. If no persistence support is desired, set the pathname to `null`.
      Parameters:
        `pathname` - New session persistence pathname

    - #### load

          public void load()
                    throws ClassNotFoundException,
                           IOException

      Description copied from interface: `Manager`
      Load any currently active sessions that were previously unloaded to the appropriate persistence mechanism, if any. If persistence is not supported, this method returns without doing anything.
      Throws:
        `ClassNotFoundException` - if a serialized class cannot be found during the reload
        `IOException` - if an input/output error occurs

    - #### doLoad

          protected void doLoad()
                         throws ClassNotFoundException,
                                IOException

      Load any currently active sessions that were previously unloaded to the appropriate persistence mechanism, if any. If persistence is not supported, this method returns without doing anything.
      Throws:
        `ClassNotFoundException` - if a serialized class cannot be found during the reload
        `IOException` - if an input/output error occurs

    - #### unload

          public void unload()
                      throws IOException

      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.
      Throws:
        `IOException` - if an input/output error occurs

    - #### doUnload

          protected void doUnload()
                           throws IOException

      Save any currently active sessions in the appropriate persistence mechanism, if any. If persistence is not supported, this method returns without doing anything.
      Throws:
        `IOException` - if an input/output error occurs

    - #### startInternal

          protected void startInternal()
                                throws LifecycleException

      Start this component and implement the requirements of `LifecycleBase.startInternal()`.
      Overrides:
        `startInternal` in class `ManagerBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that prevents this component from being used

    - #### stopInternal

          protected void stopInternal()
                               throws LifecycleException

      Stop this component and implement the requirements of `LifecycleBase.stopInternal()`.
      Overrides:
        `stopInternal` in class `ManagerBase`
      Throws:
        `LifecycleException` - if this component detects a fatal error that prevents this component from being used

    - #### file

          protected File file()

      Return a File object representing the pathname to our persistence file, if any.
      Returns:
        the file

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