Class JDBCStore

  • All Implemented Interfaces:
    Lifecycle, Store

    public class JDBCStore
    extends StoreBase
    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.
    Version:
    $Revision: 1.4 $, $Date: 2006/11/09 01:12:51 $
    Author:
    Bip Thelin
    • Field Detail

      • storeName

        protected static final String storeName
        Name to register for this Store, used for logging.
        See Also:
        Constant Field Values
      • threadName

        protected String threadName
        Name to register for the background thread.
      • connString

        protected String connString
        Connection string to use when connecting to the DB.
      • driverName

        protected String driverName
        Driver to use.
      • sessionTable

        protected String sessionTable
        Table to use.
      • sessionAppCol

        protected String sessionAppCol
        Column to use for /Engine/Host/Context name
      • sessionIdCol

        protected String sessionIdCol
        Id column to use.
      • sessionDataCol

        protected String sessionDataCol
        Data column to use.
      • sessionValidCol

        protected String sessionValidCol
        Is Valid column to use.
      • sessionMaxInactiveCol

        protected String sessionMaxInactiveCol
        Max Inactive column to use.
      • sessionLastAccessedCol

        protected String sessionLastAccessedCol
        Last Accessed column to use.
      • preparedSizeSql

        protected PreparedStatement preparedSizeSql
        Variable to hold the getSize() prepared statement.
      • preparedKeysSql

        protected PreparedStatement preparedKeysSql
        Variable to hold the keys() prepared statement.
      • preparedSaveSql

        protected PreparedStatement preparedSaveSql
        Variable to hold the save() prepared statement.
      • preparedClearSql

        protected PreparedStatement preparedClearSql
        Variable to hold the clear() prepared statement.
      • preparedRemoveSql

        protected PreparedStatement preparedRemoveSql
        Variable to hold the remove() prepared statement.
      • preparedLoadSql

        protected PreparedStatement preparedLoadSql
        Variable to hold the load() prepared statement.
    • Constructor Detail

      • JDBCStore

        public JDBCStore()
    • Method Detail

      • getName

        public String getName()
        Return the name for this instance (built from container name)
      • getThreadName

        public String getThreadName()
        Return the thread name for this Store.
      • getStoreName

        public String getStoreName()
        Return the name for this Store, used for logging.
        Overrides:
        getStoreName in class StoreBase
      • setDriverName

        public void setDriverName​(String driverName)
        Set the driver for this Store.
        Parameters:
        driverName - The new driver
      • getDriverName

        public String getDriverName()
        Return the driver for this Store.
      • setConnectionURL

        public void setConnectionURL​(String connectionURL)
        Set the Connection URL for this Store.
        Parameters:
        connectionURL - The new Connection URL
      • getConnectionURL

        public String getConnectionURL()
        Return the Connection URL for this Store.
      • setSessionTable

        public void setSessionTable​(String sessionTable)
        Set the table for this Store.
        Parameters:
        sessionTable - The new table
      • getSessionTable

        public String getSessionTable()
        Return the table for this Store.
      • setSessionAppCol

        public void setSessionAppCol​(String sessionAppCol)
        Set the App column for the table.
        Parameters:
        sessionAppCol - the column name
      • getSessionAppCol

        public String getSessionAppCol()
        Return the web application name column for the table.
      • setSessionIdCol

        public void setSessionIdCol​(String sessionIdCol)
        Set the Id column for the table.
        Parameters:
        sessionIdCol - the column name
      • getSessionIdCol

        public String getSessionIdCol()
        Return the Id column for the table.
      • setSessionDataCol

        public void setSessionDataCol​(String sessionDataCol)
        Set the Data column for the table
        Parameters:
        sessionDataCol - the column name
      • getSessionDataCol

        public String getSessionDataCol()
        Return the data column for the table
      • setSessionValidCol

        public void setSessionValidCol​(String sessionValidCol)
        Set the Is Valid column for the table
        Parameters:
        sessionValidCol - The column name
      • getSessionValidCol

        public String getSessionValidCol()
        Return the Is Valid column
      • setSessionMaxInactiveCol

        public void setSessionMaxInactiveCol​(String sessionMaxInactiveCol)
        Set the Max Inactive column for the table
        Parameters:
        sessionMaxInactiveCol - The column name
      • getSessionMaxInactiveCol

        public String getSessionMaxInactiveCol()
        Return the Max Inactive column
      • setSessionLastAccessedCol

        public void setSessionLastAccessedCol​(String sessionLastAccessedCol)
        Set the Last Accessed column for the table
        Parameters:
        sessionLastAccessedCol - The column name
      • getSessionLastAccessedCol

        public String getSessionLastAccessedCol()
        Return the Last Accessed column
      • keys

        public String[] keys()
                      throws IOException
        Return 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.
        Throws:
        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.
        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.
        Throws:
        IOException - if an input/output error occurs
      • save

        public void save​(Session session)
                  throws IOException
        Save a session to the Store.
        Parameters:
        session - the session to be stored
        Throws:
        IOException - if an input/output error occurs
      • getConnection

        protected Connection getConnection()
        Check the connection associated with this store, if it's null or closed try to reopen it. Returns null if the connection could not be established.
        Returns:
        Connection if the connection succeeded
      • release

        protected void release​(Connection conn)
        Release the connection, not needed here since the connection is not associated with a connection pool.
        Parameters:
        conn - The connection to be released
      • stop

        public void stop()
                  throws LifecycleException
        Gracefully terminate everything associated with our db. Called once when this Store is stoping.
        Specified by:
        stop in interface Lifecycle
        Overrides:
        stop in class StoreBase
        Throws:
        LifecycleException - if this component detects a fatal error that needs to be reported