Package org.apache.catalina.session
Class DataSourceStore
- java.lang.Object
-
- org.apache.catalina.util.LifecycleBase
-
- org.apache.catalina.session.StoreBase
-
- org.apache.catalina.session.DataSourceStore
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
-
Field Summary
Fields Modifier and Type Field Description protected DataSource
dataSource
DataSource to useprotected String
dataSourceName
name of the JNDI resourceprotected String
sessionAppCol
Column to use for /Engine/Host/Context nameprotected String
sessionDataCol
Data column to use.protected String
sessionIdCol
Id column to use.protected String
sessionLastAccessedCol
Last Accessed column to use.protected String
sessionMaxInactiveCol
Max Inactive column to use.protected String
sessionTable
Table to use.protected String
sessionValidCol
Is Valid
column to use.protected static String
storeName
Name to register for this Store, used for logging.-
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 DataSourceStore()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.protected Connection
getConnection()
Check the connection associated with this store, if it'snull
or closed try to reopen it.String
getDataSourceName()
boolean
getLocalDataSource()
String
getName()
String
getSessionAppCol()
String
getSessionDataCol()
String
getSessionIdCol()
String
getSessionLastAccessedCol()
String
getSessionMaxInactiveCol()
String
getSessionTable()
String
getSessionValidCol()
int
getSize()
Return an integer containing a count of all Sessions currently saved in this Store.String
getStoreName()
String[]
keys()
Session
load(String id)
Load the Session associated with the idid
.protected Connection
open()
Open (if necessary) and return a database connection for use by this Store.protected void
release(Connection conn)
Release the connection, if it is associated with a connection pool.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.void
setDataSourceName(String dataSourceName)
Set the JNDI name of a DataSource-factory to use for db accessvoid
setLocalDataSource(boolean localDataSource)
Set totrue
to cause the datasource to be looked up in the webapp JNDI Context.void
setSessionAppCol(String sessionAppCol)
Set the App column for the table.void
setSessionDataCol(String sessionDataCol)
Set the Data column for the tablevoid
setSessionIdCol(String sessionIdCol)
Set the Id column for the table.void
setSessionLastAccessedCol(String sessionLastAccessedCol)
Set theLast Accessed
column for the tablevoid
setSessionMaxInactiveCol(String sessionMaxInactiveCol)
Set theMax Inactive
column for the tablevoid
setSessionTable(String sessionTable)
Set the table for this Store.void
setSessionValidCol(String sessionValidCol)
Set theIs Valid
column for the table-
Methods inherited from class org.apache.catalina.session.StoreBase
addPropertyChangeListener, destroyInternal, getManager, getObjectInputStream, initInternal, processExpires, removePropertyChangeListener, setManager, startInternal, stopInternal, toString
-
Methods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
-
-
-
-
Field Detail
-
storeName
protected static final String storeName
Name to register for this Store, used for logging.- See Also:
- Constant Field Values
-
dataSourceName
protected String dataSourceName
name of the JNDI resource
-
dataSource
protected DataSource dataSource
DataSource 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.
-
-
Method Detail
-
getName
public String getName()
- Returns:
- the name for this instance (built from container name)
-
getStoreName
public String getStoreName()
- Overrides:
getStoreName
in classStoreBase
- Returns:
- the name for this Store, used for logging.
-
setSessionTable
public void setSessionTable(String sessionTable)
Set the table for this Store.- Parameters:
sessionTable
- The new table
-
getSessionTable
public String getSessionTable()
- Returns:
- 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()
- Returns:
- 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()
- Returns:
- 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()
- Returns:
- the data column for the table
-
setSessionValidCol
public void setSessionValidCol(String sessionValidCol)
Set theIs Valid
column for the table- Parameters:
sessionValidCol
- The column name
-
getSessionValidCol
public String getSessionValidCol()
- Returns:
- the
Is Valid
column
-
setSessionMaxInactiveCol
public void setSessionMaxInactiveCol(String sessionMaxInactiveCol)
Set theMax Inactive
column for the table- Parameters:
sessionMaxInactiveCol
- The column name
-
getSessionMaxInactiveCol
public String getSessionMaxInactiveCol()
- Returns:
- the
Max Inactive
column
-
setSessionLastAccessedCol
public void setSessionLastAccessedCol(String sessionLastAccessedCol)
Set theLast Accessed
column for the table- Parameters:
sessionLastAccessedCol
- The column name
-
getSessionLastAccessedCol
public String getSessionLastAccessedCol()
- Returns:
- the
Last Accessed
column
-
setDataSourceName
public void setDataSourceName(String dataSourceName)
Set the JNDI name of a DataSource-factory to use for db access- Parameters:
dataSourceName
- The JNDI name of the DataSource-factory
-
getDataSourceName
public String getDataSourceName()
- Returns:
- the name of the JNDI DataSource-factory
-
getLocalDataSource
public boolean getLocalDataSource()
- Returns:
- if the datasource will be looked up in the webapp JNDI Context.
-
setLocalDataSource
public void setLocalDataSource(boolean localDataSource)
Set totrue
to cause the datasource to be looked up in the webapp JNDI Context.- Parameters:
localDataSource
- the new flag value
-
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 classStoreBase
- Returns:
- list of session keys, that are to be expired
- Throws:
IOException
- if an input-/output error occurred
-
keys
public String[] keys() throws IOException
- 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.- 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 idid
. If no such session is foundnull
is returned.- Parameters:
id
- a value of typeString
- Returns:
- the stored
Session
- Throws:
ClassNotFoundException
- if an error occursIOException
- 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'snull
or closed try to reopen it. Returnsnull
if the connection could not be established.- Returns:
Connection
if the connection succeeded
-
open
protected Connection open() throws SQLException
Open (if necessary) and return a database connection for use by this Store.- Returns:
- database connection ready to use
- Throws:
SQLException
- if a database error occurs
-
close
protected void close(Connection dbConnection)
Close the specified database connection.- Parameters:
dbConnection
- The connection to be closed
-
release
protected void release(Connection conn)
Release the connection, if it is associated with a connection pool.- Parameters:
conn
- The connection to be released
-
-