org.apache.catalina.session

## Class DataSourceStore

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.session.StoreBase
    - - org.apache.catalina.session.JDBCStore
      - - org.apache.catalina.session.DataSourceStore

- All Implemented Interfaces:
    Lifecycle, Store

      public class DataSourceStore
      extends JDBCStore

  Implementation of the `Store` interface that stores serialized session objects in a database. Sessions that are saved are still subject to being expired based on inactivity.
  Author:
    Bip Thelin

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    - ### Fields inherited from class org.apache.catalina.session.JDBCStore

      `connectionName, connectionPassword, connectionURL, dataSource, dataSourceName, driver, driverName, preparedClearSql, preparedLoadSql, preparedRemoveSql, preparedSaveSql, preparedSizeSql, sessionAppCol, sessionDataCol, sessionIdCol, sessionLastAccessedCol, sessionMaxInactiveCol, sessionTable, sessionValidCol, storeName, threadName`

    - ### Fields inherited from class org.apache.catalina.session.StoreBase

      `manager, sm, support`

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `clear()` Remove all of the Sessions in this Store.
    `protected void` | `close(Connection dbConnection)` Close the specified database connection.
    `String[]` | `expiredKeys()` Get only those keys of sessions, that are saved in the Store and are to be expired.
    `int` | `getSize()` Return an integer containing a count of all Sessions currently saved in this Store.
    `String[]` | `keys()`
    `Session` | `load(String id)` Load the Session associated with the id `id`.
    `protected Connection` | `open()` Open (if necessary) and return a database connection for use by this Store.
    `void` | `remove(String id)` Remove the Session with the specified session identifier from this Store, if present.
    `void` | `save(Session session)` Save a session to the Store.

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

      `getConnection, getConnectionName, getConnectionPassword, getConnectionURL, getDataSourceName, getDriverName, getLocalDataSource, getName, getSessionAppCol, getSessionDataCol, getSessionIdCol, getSessionLastAccessedCol, getSessionMaxInactiveCol, getSessionTable, getSessionValidCol, getStoreName, getThreadName, release, setConnectionName, setConnectionPassword, setConnectionURL, setDataSourceName, setDriverName, setLocalDataSource, setSessionAppCol, setSessionDataCol, setSessionIdCol, setSessionLastAccessedCol, setSessionMaxInactiveCol, setSessionTable, setSessionValidCol, startInternal, stopInternal`

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

      `addPropertyChangeListener, destroyInternal, getManager, getObjectInputStream, initInternal, processExpires, removePropertyChangeListener, setManager, toString`

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

- - ### Constructor Detail

    - #### DataSourceStore

          public DataSourceStore()

  - ### Method Detail

    - #### expiredKeys

          public String[] expiredKeys()
                               throws IOException

      Description copied from class: `StoreBase`
      Get only those keys of sessions, that are saved in the Store and are to be expired.
      Overrides:
        `expiredKeys` in class `JDBCStore`
      Returns:
        list of session keys, that are to be expired
      Throws:
        `IOException` - if an input-/output error occurred

    - #### keys

          public String[] keys()
                        throws IOException

      Specified by:
        `keys` in interface `Store`
      Overrides:
        `keys` in class `JDBCStore`
      Returns:
        an array containing the session identifiers of all Sessions currently saved in this Store. If there are no such Sessions, a zero-length array is returned.
      Throws:
        `IOException` - if an input/output error occurred

    - #### getSize

          public int getSize()
                      throws IOException

      Return an integer containing a count of all Sessions currently saved in this Store. If there are no Sessions, `0` is returned.
      Specified by:
        `getSize` in interface `Store`
      Overrides:
        `getSize` in class `JDBCStore`
      Returns:
        the count of all sessions currently saved in this Store
      Throws:
        `IOException` - if an input/output error occurred

    - #### load

          public Session load(String id)
                       throws ClassNotFoundException,
                              IOException

      Load the Session associated with the id `id`. If no such session is found `null` is returned.
      Specified by:
        `load` in interface `Store`
      Overrides:
        `load` in class `JDBCStore`
      Parameters:
        `id` - a value of type `String`
      Returns:
        the stored `Session`
      Throws:
        `ClassNotFoundException` - if an error occurs
        `IOException` - if an input/output error occurred

    - #### remove

          public void remove(String id)
                      throws IOException

      Remove the Session with the specified session identifier from this Store, if present. If no such Session is present, this method takes no action.
      Specified by:
        `remove` in interface `Store`
      Overrides:
        `remove` in class `JDBCStore`
      Parameters:
        `id` - Session identifier of the Session to be removed
      Throws:
        `IOException` - if an input/output error occurs

    - #### clear

          public void clear()
                     throws IOException

      Remove all of the Sessions in this Store.
      Specified by:
        `clear` in interface `Store`
      Overrides:
        `clear` in class `JDBCStore`
      Throws:
        `IOException` - if an input/output error occurs

    - #### save

          public void save(Session session)
                    throws IOException

      Save a session to the Store.
      Specified by:
        `save` in interface `Store`
      Overrides:
        `save` in class `JDBCStore`
      Parameters:
        `session` - the session to be stored
      Throws:
        `IOException` - if an input/output error occurs

    - #### open

          protected Connection open()
                             throws SQLException

      Open (if necessary) and return a database connection for use by this Store.
      Overrides:
        `open` in class `JDBCStore`
      Returns:
        database connection ready to use
      Throws:
        `SQLException` - if a database error occurs

    - #### close

          protected void close(Connection dbConnection)

      Close the specified database connection.
      Overrides:
        `close` in class `JDBCStore`
      Parameters:
        `dbConnection` - The connection to be closed

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