# 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
  Description
  `protected static final 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

  `expiredSessions, maxActive, maxActiveSessions, processExpiresFrequency, processingTime, rejectedSessions, secureRandomAlgorithm, secureRandomClass, secureRandomProvider, sessionCreationTiming, sessionExpirationTiming, sessionIdGenerator, sessionIdGeneratorClass, sessionMaxAliveTime, sessions, sm, support, TIMING_STATS_CACHE_SIZE`

  ### 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
  Description
  `StandardManager()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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, createEmptySession, createSession, expireSession, findSession, findSessions, generateSessionId, getActiveSessions, getClassName, getContext, getCreationTime, getCreationTimestamp, getDomainInternal, getEngine, getExpiredSessions, getJvmRoute, getLastAccessedTime, getLastAccessedTimestamp, getMaxActive, getMaxActiveSessions, getNewSession, getNotifyAttributeListenerOnUnchangedValue, getNotifyBindingListenerOnUnchangedValue, getObjectNameKeyProperties, getPersistAuthentication, getProcessExpiresFrequency, getProcessingTime, getRejectedSessions, getSecureRandomAlgorithm, getSecureRandomClass, getSecureRandomProvider, getSession, getSessionActivityCheck, getSessionAttribute, getSessionAttributeNameFilter, getSessionAttributeNamePattern, getSessionAttributeValueClassNameFilter, getSessionAttributeValueClassNamePattern, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdGenerator, getSessionLastAccessAtStart, getSessionMaxAliveTime, getThisAccessedTime, getThisAccessedTimestamp, getWarnOnSessionAttributeFilterFailure, initInternal, listSessionIds, processExpires, remove, remove, removePropertyChangeListener, rotateSessionId, setContext, setExpiredSessions, setMaxActive, setMaxActiveSessions, setNotifyAttributeListenerOnUnchangedValue, setNotifyBindingListenerOnUnchangedValue, setPersistAuthentication, setProcessExpiresFrequency, setProcessingTime, setSecureRandomAlgorithm, setSecureRandomClass, setSecureRandomProvider, setSessionActivityCheck, setSessionAttributeNameFilter, setSessionAttributeValueClassNameFilter, setSessionIdGenerator, setSessionLastAccessAtStart, 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 Details

  - ### 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 `jakarta.servlet.context.tempdir` context attribute.

- ## Constructor Details

  - ### StandardManager

    public StandardManager()

- ## Method Details

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

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

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