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

`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 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 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, 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, getSessionActivityCheck, getSessionAttribute, getSessionAttributeNameFilter, getSessionAttributeNamePattern, getSessionAttributeValueClassNameFilter, getSessionAttributeValueClassNamePattern, getSessionAverageAliveTime, getSessionCounter, getSessionCreateRate, getSessionExpireRate, getSessionIdGenerator, getSessionLastAccessAtStart, getSessionMaxAliveTime, getThisAccessedTime, getThisAccessedTimestamp, getWarnOnSessionAttributeFilterFailure, initInternal, listSessionIds, processExpires, remove, remove, removePropertyChangeListener, rotateSessionId, setContext, setDuplicates, setExpiredSessions, setMaxActive, setMaxActiveSessions, setNotifyAttributeListenerOnUnchangedValue, setNotifyBindingListenerOnUnchangedValue, setPersistAuthentication, setProcessExpiresFrequency, setProcessingTime, setSecureRandomAlgorithm, setSecureRandomClass, setSecureRandomProvider, setSessionActivityCheck, setSessionAttributeNameFilter, setSessionAttributeValueClassNameFilter, setSessionCounter, 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

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