# Package org.apache.catalina.session

This package contains the standard `Manager` and `Session` implementations that represent the collection of active sessions and the individual sessions themselves, respectively, that are associated with a `Context`.

See: Description

- Class Summary
  Class | Description
  --- | ---
  Constants | Manifest constants for the `org.apache.catalina.session` package.
  FileStore | Concrete implementation of the Store interface that utilizes a file per saved Session in a configured directory.
  JDBCStore | Implementation of the `Store` interface that stores serialized session objects in a database.
  ManagerBase | Minimal implementation of the Manager interface that supports no session persistence or distributable capabilities.
  ManagerBase.SessionTiming |
  PersistentManager | Implementation of the Manager interface that makes use of a Store to swap active Sessions to disk.
  PersistentManagerBase | Extends the `ManagerBase` class to implement most of the functionality required by a Manager which supports any kind of persistence, even if only for restarts.
  StandardManager | 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.
  StandardSession | Standard implementation of the Session interface.
  StandardSessionFacade | Facade for the StandardSession object.
  StoreBase | Abstract implementation of the `Store` interface to support most of the functionality required by a `Store`.

- Exception Summary
  Exception | Description
  --- | ---
  TooManyActiveSessionsException | An exception that indicates the maximum number of active sessions has been reached and the server is refusing to create any new sessions.

## Package org.apache.catalina.session Description

This package contains the standard `Manager` and `Session` implementations that represent the collection of active sessions and the individual sessions themselves, respectively, that are associated with a `Context`. Additional implementations of the `Manager` interface can be based upon the supplied convenience base class (`ManagerBase`), if desired. Different implementations of `Session` are possible, but a need for functionality beyond what is provided by the standard implementation (`StandardSession`) is not expected.

The convenience `ManagerBase` base class is configured by setting the following properties:

- algorithm - Message digest algorithm to be used when generating session identifiers. This must be the name of an algorithm supported by the `java.security.MessageDigest` class on your platform. [DEFAULT_ALGORITHM]
- debug - Debugging detail level for this component. [0]
- distributable - Has the web application we are associated with been marked as "distributable"? If it has, attempts to add or replace a session attribute object that does not implement the `java.io.Serializable` interface will be rejected. [false]
- maxInactiveInterval - The default maximum inactive interval, in minutes, for sessions created by this Manager. The standard implementation automatically updates this value based on the configuration settings in the web application deployment descriptor. [60]
- randomClass - The Java class name of the random number generator to be used when creating session identifiers for this Manager. [java.security.SecureRandom]

The standard implementation of the `Manager` interface (`StandardManager`) supports the following additional configuration properties:

- maxActiveSessions - The maximum number of active sessions that will be allowed, or -1 for no limit. [-1]
- pathname - Pathname to the file that is used to store session data persistently across container restarts. If this pathname is relative, it is resolved against the temporary working directory provided by our associated Context, if any. ["sessions.ser"]

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