ClusteredHTTPSessionBusiness.java |
/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.ha.httpsession.beanimpl.interfaces; import java.rmi.RemoteException; import org.jboss.ha.httpsession.interfaces.SerializableHttpSession; /** * Business methods for the entity bean that will store HTTPSession * in a clustered environment. * * @see org.jboss.ha.httpsession.beanimpl.interfaces.ClusteredHTTPSession * * @author <a href="mailto:sacha.labourey@cogito-info.ch">Sacha Labourey</a>. * @version $Revision: 1.2 $ * * <p><b>Revisions:</b> * * <p><b>31. décembre 2001 Sacha Labourey:</b> * <ul> * <li> First implementation </li> * </ul> */ public interface ClusteredHTTPSessionBusiness { /** * Get the session identifier associated to this HTTPSession. * This is the primary key of the entity bean. * @return The session id. */ public String getSessionId () throws RemoteException; // PK /** * Return the HttpSession object associated to its id. The main difference with the * standard class is that this one is Serializable. */ public SerializableHttpSession getSession () throws RemoteException; /** * Associate a new session (set of attributes, ...) to this id. */ public void setSession (SerializableHttpSession session) throws RemoteException; // used to clean timeouted sessions without accessing the HttpSession object // /** * Return the last time this session has been accessed in miliseconds since 1970. * This method is a shortcut for getSession().getLastAccessedTime (). The reason * is that the bean, when directly asked for the time, don't need to deserialize * the session representation if not already done (lazy deserialization). * If the only thing that changes in an HTTPSession it the last accessed time (and no attributes), * the session may not be replicated on other node (to reduce traffic). Nevertheless, * the new session is stored in the local bean. Consequently, if a load-balancer * with sticky sessions is used, this is no problem (the local, updated, bean is used. */ public long getLastAccessedTime() throws RemoteException; /** * Return the time when this session has been created in miliseconds since 1970. * This method is a shortcut for getSession().getLastAccessedTime (). The reason * is that the bean, when directly asked for the time, don't need to deserialize * the session representation if not already done (lazy deserialization) */ public long getCreationTime() throws RemoteException; }
ClusteredHTTPSessionBusiness.java |