Package org.eclipse.jetty.server.session
Class JDBCSessionDataStore
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.component.ContainerLifeCycle
-
- org.eclipse.jetty.server.session.AbstractSessionDataStore
-
- org.eclipse.jetty.server.session.JDBCSessionDataStore
-
- All Implemented Interfaces:
SessionDataMap,SessionDataStore,Container,Destroyable,Dumpable,Dumpable.DumpableContainer,LifeCycle
@ManagedObject public class JDBCSessionDataStore extends AbstractSessionDataStore
JDBCSessionDataStore Session data stored in database
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classJDBCSessionDataStore.SessionTableSchemaSessionTableSchema-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
Container.InheritedListener, Container.Listener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
-
-
Field Summary
Fields Modifier and Type Field Description protected DatabaseAdaptor_dbAdaptorprotected boolean_initializedprotected boolean_schemaProvidedprotected JDBCSessionDataStore.SessionTableSchema_sessionTableSchemastatic java.lang.StringNULL_CONTEXT_PATHUsed for Oracle and other databases where "" is treated as NULL-
Fields inherited from class org.eclipse.jetty.server.session.AbstractSessionDataStore
_context, _gracePeriodSec, _lastExpiryCheckTime, _savePeriodSec
-
-
Constructor Summary
Constructors Constructor Description JDBCSessionDataStore()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleandelete(java.lang.String id)Delete session datajava.util.Set<java.lang.String>doGetExpired(java.util.Set<java.lang.String> candidates)Implemented by subclasses to resolve which sessions this node should attempt to expire.protected voiddoInsert(java.lang.String id, SessionData data)SessionDatadoLoad(java.lang.String id)Load the session from persistent store.protected voiddoStart()Starts the managed lifecycle beans in the order they were added.protected voiddoStop()Stops the managed lifecycle beans in the reverse order they were added.voiddoStore(java.lang.String id, SessionData data, long lastSaveTime)Store the session data persistently.protected voiddoUpdate(java.lang.String id, SessionData data)booleanexists(java.lang.String id)Test if data exists for a given session id.voidinitialize()booleanisPassivating()True if this type of datastore will passivate session objectsvoidsetDatabaseAdaptor(DatabaseAdaptor dbAdaptor)voidsetSessionTableSchema(JDBCSessionDataStore.SessionTableSchema schema)-
Methods inherited from class org.eclipse.jetty.server.session.AbstractSessionDataStore
checkStarted, getExpired, getGracePeriodSec, getSavePeriodSec, initialize, load, newSessionData, setGracePeriodSec, setSavePeriodSec, store, toString
-
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpObjects, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeans
-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
-
Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle
addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
-
-
-
-
Field Detail
-
NULL_CONTEXT_PATH
public static final java.lang.String NULL_CONTEXT_PATH
Used for Oracle and other databases where "" is treated as NULL- See Also:
- Constant Field Values
-
_initialized
protected boolean _initialized
-
_dbAdaptor
protected DatabaseAdaptor _dbAdaptor
-
_sessionTableSchema
protected JDBCSessionDataStore.SessionTableSchema _sessionTableSchema
-
_schemaProvided
protected boolean _schemaProvided
-
-
Method Detail
-
doStart
protected void doStart() throws java.lang.ExceptionDescription copied from class:ContainerLifeCycleStarts the managed lifecycle beans in the order they were added.- Overrides:
doStartin classAbstractSessionDataStore- Throws:
java.lang.Exception
-
doStop
protected void doStop() throws java.lang.ExceptionDescription copied from class:ContainerLifeCycleStops the managed lifecycle beans in the reverse order they were added.- Overrides:
doStopin classContainerLifeCycle- Throws:
java.lang.Exception
-
initialize
public void initialize() throws java.lang.Exception- Throws:
java.lang.Exception
-
doLoad
public SessionData doLoad(java.lang.String id) throws java.lang.Exception
Description copied from class:AbstractSessionDataStoreLoad the session from persistent store.- Specified by:
doLoadin classAbstractSessionDataStore- Parameters:
id- the id of the session to load- Returns:
- the re-inflated session
- Throws:
java.lang.Exception- if unable to load the session
-
delete
public boolean delete(java.lang.String id) throws java.lang.ExceptionDescription copied from interface:SessionDataMapDelete session data- Parameters:
id- identity of session to delete- Returns:
- true if the session was deleted
- Throws:
java.lang.Exception- if unable to delete session data
-
doStore
public void doStore(java.lang.String id, SessionData data, long lastSaveTime) throws java.lang.ExceptionDescription copied from class:AbstractSessionDataStoreStore the session data persistently.- Specified by:
doStorein classAbstractSessionDataStore- Parameters:
id- identity of session to storedata- info of the sessionlastSaveTime- time of previous save or 0 if never saved- Throws:
java.lang.Exception- if unable to store data
-
doInsert
protected void doInsert(java.lang.String id, SessionData data) throws java.lang.Exception- Throws:
java.lang.Exception
-
doUpdate
protected void doUpdate(java.lang.String id, SessionData data) throws java.lang.Exception- Throws:
java.lang.Exception
-
doGetExpired
public java.util.Set<java.lang.String> doGetExpired(java.util.Set<java.lang.String> candidates)
Description copied from class:AbstractSessionDataStoreImplemented by subclasses to resolve which sessions this node should attempt to expire.- Specified by:
doGetExpiredin classAbstractSessionDataStore- Parameters:
candidates- the ids of sessions the SessionDataStore thinks has expired- Returns:
- the reconciled set of session ids that this node should attempt to expire
-
setDatabaseAdaptor
public void setDatabaseAdaptor(DatabaseAdaptor dbAdaptor)
-
setSessionTableSchema
public void setSessionTableSchema(JDBCSessionDataStore.SessionTableSchema schema)
-
isPassivating
@ManagedAttribute(value="does this store serialize sessions", readonly=true) public boolean isPassivating()
Description copied from interface:SessionDataStoreTrue if this type of datastore will passivate session objects- Returns:
- true if this store can passivate sessions, false otherwise
-
exists
public boolean exists(java.lang.String id) throws java.lang.ExceptionDescription copied from interface:SessionDataStoreTest if data exists for a given session id.- Parameters:
id- Identity of session whose existence should be checked- Returns:
- true if valid, non-expired session exists
- Throws:
java.lang.Exception- if problem checking existence with persistence layer
-
-