Class InfinispanSessionDataStore
java.lang.Object
org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.ContainerLifeCycle
org.eclipse.jetty.server.session.AbstractSessionDataStore
org.eclipse.jetty.session.infinispan.InfinispanSessionDataStore
- All Implemented Interfaces:
SessionDataMap
,SessionDataStore
,Container
,Destroyable
,Dumpable
,Dumpable.DumpableContainer
,LifeCycle
InfinispanSessionDataStore
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener, AbstractLifeCycle.StopException
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 inherited from class org.eclipse.jetty.server.session.AbstractSessionDataStore
_context, _gracePeriodSec, _lastExpiryCheckTime, _lastOrphanSweepTime, _savePeriodSec, DEFAULT_GRACE_PERIOD_SEC, DEFAULT_SAVE_PERIOD_SEC
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Delete session datadoCheckExpired
(Set<String> candidates, long time) Implemented by subclasses to resolve which sessions in this context that are being managed by this node that should be expired.void
doCleanOrphans
(long timeLimit) Implemented by subclasses to delete sessions for other contexts that expired at or before the timeLimit.boolean
Check if a session for the given id exists.doGetExpired
(long time) Implemented by subclasses to find sessions for this context in the store that expired at or before the time limit and thus not being actively managed by any node.Load the session from persistent store.protected void
doStart()
Starts the managed lifecycle beans in the order they were added.void
doStore
(String id, SessionData data, long lastSaveTime) Store the session data persistently.org.infinispan.commons.api.BasicCache<String,
InfinispanSessionData> getCache()
Get the clustered cache instance.getCacheKey
(String id) int
boolean
True if this type of datastore will passivate session objectsnewSessionData
(String id, long created, long accessed, long lastAccessed, long maxInactiveMs) Create a new SessionDatavoid
setCache
(org.infinispan.commons.api.BasicCache<String, InfinispanSessionData> cache) Set the clustered cache instance.void
setInfinispanIdleTimeoutSec
(int sec) void
setQueryManager
(QueryManager queryManager) void
setSerialization
(boolean serialization) toString()
Methods inherited from class org.eclipse.jetty.server.session.AbstractSessionDataStore
checkStarted, cleanOrphans, exists, getExpired, getGracePeriodSec, getSavePeriodSec, initialize, load, setGracePeriodSec, setSavePeriodSec, store
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, doStop, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeans
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, 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.Container
getCachedBeans, getEventListeners
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle
addEventListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, start, stop
-
Constructor Details
-
InfinispanSessionDataStore
public InfinispanSessionDataStore()
-
-
Method Details
-
getCache
Get the clustered cache instance.- Returns:
- the cache
-
setCache
Set the clustered cache instance.- Parameters:
cache
- the cache
-
doStart
Description copied from class:ContainerLifeCycle
Starts the managed lifecycle beans in the order they were added.- Overrides:
doStart
in classAbstractSessionDataStore
- Throws:
AbstractLifeCycle.StopException
- If thrown, the lifecycle will immediately be stopped.Exception
- If there was a problem starting. Will cause a transition to FAILED state
-
getQueryManager
-
setQueryManager
-
doLoad
Description copied from class:AbstractSessionDataStore
Load the session from persistent store.- Specified by:
doLoad
in classAbstractSessionDataStore
- Parameters:
id
- the id of the session to load- Returns:
- the re-inflated session
- Throws:
Exception
- if unable to load the session
-
delete
Description copied from interface:SessionDataMap
Delete session data- Parameters:
id
- identity of session to delete- Returns:
- true if the session was deleted
- Throws:
Exception
- if unable to delete session data
-
doCheckExpired
Description copied from class:AbstractSessionDataStore
Implemented by subclasses to resolve which sessions in this context that are being managed by this node that should be expired.- Specified by:
doCheckExpired
in classAbstractSessionDataStore
- Parameters:
candidates
- the ids of sessions the SessionCache thinks has expiredtime
- the time at which to check for expiry- Returns:
- the reconciled set of session ids that have been checked in the store
-
doGetExpired
Description copied from class:AbstractSessionDataStore
Implemented by subclasses to find sessions for this context in the store that expired at or before the time limit and thus not being actively managed by any node. This method is only called periodically (the period is configurable) to avoid putting too much load on the store.- Specified by:
doGetExpired
in classAbstractSessionDataStore
- Parameters:
time
- the upper limit of expiry times to check. Sessions expired at or before this timestamp will match.- Returns:
- the empty set if there are no sessions expired as at the time, or otherwise a set of session ids.
-
doCleanOrphans
public void doCleanOrphans(long timeLimit) Description copied from class:AbstractSessionDataStore
Implemented by subclasses to delete sessions for other contexts that expired at or before the timeLimit. These are 'orphaned' sessions that are no longer being actively managed by any node. These are explicitly sessions that do NOT belong to this context (other mechanisms such as doGetExpired take care of those). As they don't belong to this context, they cannot be loaded by us. This is called only periodically to avoid placing excessive load on the store.- Specified by:
doCleanOrphans
in classAbstractSessionDataStore
- Parameters:
timeLimit
- the upper limit of the expiry time to check in msec
-
doStore
Description copied from class:AbstractSessionDataStore
Store the session data persistently.- Specified by:
doStore
in classAbstractSessionDataStore
- Parameters:
id
- identity of session to storedata
- info of the sessionlastSaveTime
- time of previous save or 0 if never saved- Throws:
Exception
- if unable to store data
-
getCacheKey
-
isPassivating
@ManagedAttribute(value="does store serialize sessions", readonly=true) public boolean isPassivating()Description copied from interface:SessionDataStore
True if this type of datastore will passivate session objects- Returns:
- true if this store can passivate sessions, false otherwise
-
doExists
Description copied from class:AbstractSessionDataStore
Check if a session for the given id exists.- Specified by:
doExists
in classAbstractSessionDataStore
- Parameters:
id
- the session id to check- Returns:
- true if the session exists in the persistent store, false otherwise
- Throws:
Exception
-
newSessionData
public SessionData newSessionData(String id, long created, long accessed, long lastAccessed, long maxInactiveMs) Description copied from interface:SessionDataStore
Create a new SessionData- Specified by:
newSessionData
in interfaceSessionDataStore
- Overrides:
newSessionData
in classAbstractSessionDataStore
- Parameters:
id
- the idcreated
- the timestamp when createdaccessed
- the timestamp when accessedlastAccessed
- the timestamp when last accessedmaxInactiveMs
- the max inactive time in milliseconds- Returns:
- a new SessionData object
-
setInfinispanIdleTimeoutSec
public void setInfinispanIdleTimeoutSec(int sec) - Parameters:
sec
- the infinispan-specific idle timeout in sec or 0 if not set
-
getInfinispanIdleTimeoutSec
@ManagedAttribute(value="infinispan idle timeout sec", readonly=true) public int getInfinispanIdleTimeoutSec() -
setSerialization
public void setSerialization(boolean serialization) -
toString
- Overrides:
toString
in classAbstractSessionDataStore
-