Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.lutris.appserver.server.session
Class DiskPagedSessionHome  view DiskPagedSessionHome download DiskPagedSessionHome.java

java.lang.Object
  extended bycom.lutris.appserver.server.session.PagedSessionHome
      extended bycom.lutris.appserver.server.session.DiskPagedSessionHome
All Implemented Interfaces:
StandardSessionHome

public class DiskPagedSessionHome
extends PagedSessionHome

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.

Version:
$Revision: 1.2.14.1 $

Field Summary
private  java.lang.String PAGE_DIR_KEY
          Configuration keys.
private  java.util.Hashtable pagedCache
          The paged cache contains handles to passive sessions that have been paged to disk.
private  com.lutris.util.PersistentStore store
          The persistent storage interface.
 
Fields inherited from class com.lutris.appserver.server.session.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.session.PagedSessionHome
checkPassiveSessions, 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
 

Field Detail

pagedCache

private java.util.Hashtable pagedCache
The paged cache contains handles to passive sessions that have been paged to disk.


store

private com.lutris.util.PersistentStore store
The persistent storage interface.


PAGE_DIR_KEY

private final java.lang.String PAGE_DIR_KEY
Configuration keys.

See Also:
Constant Field Values
Constructor Detail

DiskPagedSessionHome

public DiskPagedSessionHome(StandardSessionManager sessionMgr,
                            com.lutris.util.Config config,
                            java.lang.ClassLoader loader)
                     throws SessionException,
                            com.lutris.util.ConfigException
Method Detail

newSession

protected PagedSession newSession(StandardSessionManager mgr,
                                  java.lang.String sessionKey)
                           throws SessionException
Creates a new session object. This method is intended to be overriden by classes that extend PagedSessionHome.

Specified by:
newSession in class PagedSessionHome

deleteSession

protected void deleteSession(java.lang.String sessionKey)
                      throws SessionException
Deletes a paged session. If the session doesn't exist then this is a noop.

Specified by:
deleteSession in class PagedSessionHome

pageOut

protected void pageOut(PagedSession s)
                throws SessionException
Pages a session to disk.

Specified by:
pageOut in class PagedSessionHome

pageIn

protected PagedSession pageIn(java.lang.String sessionKey)
                       throws SessionException
Reads a paged session from disk.

Specified by:
pageIn in class PagedSessionHome

getPagedSessionCount

protected int getPagedSessionCount()
                            throws SessionException
Returns the number of paged sessions.

Specified by:
getPagedSessionCount in class PagedSessionHome

pagedSessionKeyExists

protected boolean pagedSessionKeyExists(java.lang.String sessionKey)
                                 throws SessionException
Returns true if the specified session key is in use by a session that has been paged out.

Specified by:
pagedSessionKeyExists in class PagedSessionHome

getPagedSessionKeys

protected java.util.Enumeration getPagedSessionKeys()
                                             throws SessionException
Returns an enumeration of the keys of all the sessions that have been paged out to persistent storage.

Specified by:
getPagedSessionKeys in class PagedSessionHome

cleanupNewPagedSession

protected boolean cleanupNewPagedSession()
                                  throws SessionException
Removes a session that is new and paged.

Specified by:
cleanupNewPagedSession in class PagedSessionHome

shutdown

public void shutdown()
Shuts dows the session home. Removes paged sessions from disk.

Specified by:
shutdown in interface StandardSessionHome
Overrides:
shutdown in class PagedSessionHome