|
EAF 7.6 Implementation | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.lutris.appserver.server.sessionEnhydra.PagedSessionHome
com.lutris.appserver.server.sessionEnhydra.DiskPagedSessionHome
public class DiskPagedSessionHome
The StandardSessionManager uses PagedSessionHome to manage a collection of sessions that can be paged to disk.
PagedSessionHome will page sessions to disk as soon as a pre-configured threshold of sessions has been reached. Only sessions in the 'passive' state will be paged to disk. If all sessions are in the 'active' state and the threshold has been reached, then a request to create a new session will block until one of the 'active' sessions goes into the 'passive' state. At this point the session that just became 'passive' is paged to disk and a new session is created.
Sessions are paged to disk by serializing the all data (excluding the session manager) that is associated with a session. This requires that the session data and user associated with a session are serializable.
The following parameters can be used to configure
the PagedSessionHome. They should be grouped together in a section,
normally SessionManager.SessionHome
, which is specified to
the constructor.
PageThreshold: {int}
Sessions are paged if the total number of sessions exceeds PageThreshold. If not set, defaults to 100.
PageWait: {int}
Specifies the maximum time (in milliseconds) that a thread will wait for a session to be created or retrieved. If the page threshold has been reached, then a thread has to wait for an existing session to be paged before a new session can be created or a pre-existing session (that has been paged to disk) can be activated. If not set, defaults to 1 minute. If this time is exceeded then an exception is thrown - this prevents a possible deadlock situation.
PageDir: {String}
The directory where sessions will be paged. This setting is required.
MaxSessions: {int}
Specifies the maximum number of in use concurrent sessions. If this value is exceeded then CreateSession() will throw a CreateSessionException. -1 indicates unlimited session. If MaxSessions is not set in the application's configuration then MaxSessions defaults to unlimited sessions.
SaveOnRestart: (true|false}
Indicate that shold we saves all (active and passive) sessions on disk
when restart application.
If we use SessionManager.MemoryPersistence = true
then ignore
SaveOnRestart
parameter.
StandardSession
,
StandardSessionManager
Field Summary |
---|
Fields inherited from class com.lutris.appserver.server.sessionEnhydra.PagedSessionHome |
---|
loader, sessionMgr |
Constructor Summary | |
---|---|
DiskPagedSessionHome(StandardSessionManager sessionMgr,
com.lutris.util.Config config,
java.lang.ClassLoader loader)
|
Method Summary | |
---|---|
protected boolean |
cleanupNewPagedSession()
Removes a session that is new and paged. |
protected void |
deleteSession(java.lang.String sessionKey)
Deletes a paged session. |
protected int |
getPagedSessionCount()
Returns the number of paged sessions. |
protected java.util.Enumeration |
getPagedSessionKeys()
Returns an enumeration of the keys of all the sessions that have been paged out to persistent storage. |
protected PagedSession |
newSession(StandardSessionManager mgr,
java.lang.String sessionKey)
Creates a new session object. |
protected boolean |
pagedSessionKeyExists(java.lang.String sessionKey)
Returns true if the specified session key is in use by a session that has been paged out. |
protected PagedSession |
pageIn(java.lang.String sessionKey)
Reads a paged session from disk. |
protected void |
pageOut(PagedSession s)
Pages a session to disk. |
void |
shutdown()
Shuts dows the session home. |
Methods inherited from class com.lutris.appserver.server.sessionEnhydra.PagedSessionHome |
---|
containsKey, createSession, debug, debug, getSession, getSession, keys, pagedSize, passivateSession, removeSession, size |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DiskPagedSessionHome(StandardSessionManager sessionMgr, com.lutris.util.Config config, java.lang.ClassLoader loader) throws com.lutris.appserver.server.session.SessionException, com.lutris.util.ConfigException
sessionMgr
- The session manager associated with this session home.config
- Object parsed from configuration file. This should be
for the section containing the standard session home configuration.loader
- The class load to use when load objects from persistent store.
com.lutris.util.ConfigException
- signifies a problem in the configuration file.
com.lutris.appserver.server.session.SessionException
- if the initialization fails.Method Detail |
---|
protected PagedSession newSession(StandardSessionManager mgr, java.lang.String sessionKey) throws com.lutris.appserver.server.session.SessionException
newSession
in class PagedSessionHome
com.lutris.appserver.server.session.SessionException
- if an error occurs.protected void deleteSession(java.lang.String sessionKey) throws com.lutris.appserver.server.session.SessionException
deleteSession
in class PagedSessionHome
sessionKey
- the key identifying the session
that should be deleted.
com.lutris.appserver.server.session.SessionException
protected void pageOut(PagedSession s) throws com.lutris.appserver.server.session.SessionException
pageOut
in class PagedSessionHome
session
- the session to page.
com.lutris.appserver.server.session.SessionException
- if the paged session could not be
paged out.protected PagedSession pageIn(java.lang.String sessionKey) throws com.lutris.appserver.server.session.SessionException
pageIn
in class PagedSessionHome
sessionKey
- the key identifying the session that should
be paged in.
com.lutris.appserver.server.session.SessionException
- if the paged session could not be
read in or does not exist.protected int getPagedSessionCount() throws com.lutris.appserver.server.session.SessionException
getPagedSessionCount
in class PagedSessionHome
com.lutris.appserver.server.session.SessionException
- if the paged session count
cannot be retrieved.protected boolean pagedSessionKeyExists(java.lang.String sessionKey) throws com.lutris.appserver.server.session.SessionException
pagedSessionKeyExists
in class PagedSessionHome
sessionKey
- the session key to test.
com.lutris.appserver.server.session.SessionException
- if an error occurs.protected java.util.Enumeration getPagedSessionKeys() throws com.lutris.appserver.server.session.SessionException
getPagedSessionKeys
in class PagedSessionHome
com.lutris.appserver.server.session.SessionException
- if an error occurs.protected boolean cleanupNewPagedSession() throws com.lutris.appserver.server.session.SessionException
cleanupNewPagedSession
in class PagedSessionHome
com.lutris.appserver.server.session.SessionException
- if an error occurs.public void shutdown()
shutdown
in interface com.lutris.appserver.server.sessionEnhydra.StandardSessionHome
shutdown
in class PagedSessionHome
|
EAF 7.6 Implementation | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |