org.jboss.web.tomcat.service.session
Class AttributeBasedClusteredSipApplicationSession
java.lang.Object
org.mobicents.servlet.sip.core.session.SipApplicationSessionImpl
org.jboss.web.tomcat.service.session.ClusteredSipApplicationSession
org.jboss.web.tomcat.service.session.JBossCacheClusteredSipApplicationSession
org.jboss.web.tomcat.service.session.AttributeBasedClusteredSipApplicationSession
- All Implemented Interfaces:
- java.io.Externalizable, java.io.Serializable, SipApplicationSession, MobicentsSipApplicationSession
public class AttributeBasedClusteredSipApplicationSession
- extends JBossCacheClusteredSipApplicationSession
Implementation of a clustered sip application session for the JBossCacheManager.
This class is based on the following Jboss class org.jboss.web.tomcat.service.session.AttributeBasedClusteredSession JBOSS AS 4.2.2 Tag
The replication granularity level is attribute based; that is, we replicate only the dirty attributes.
We use JBossCache for our internal, deplicated data store.
The internal structure is like in JBossCache:
/SIPSESSION
/hostname
/sip_app_name (path + session id is unique)
/sipapplicationsessionid Map(id, session)
(VERSION_KEY, version) // Used for version tracking. version is an Integer.
/ATTRIBUTE Map(attr_key, value)
Note that the isolation level of the cache dictates the
concurrency behavior. Also note that session and its associated attribtues are stored in different nodes.
This will be ok since cache will take care of concurrency. When replicating, we will need to replicate both
session and its attributes.
- Author:
- Jean Deruelle, Ben Wang, Brian Stansberry
- See Also:
- Serialized Form
|
Field Summary |
protected static java.lang.String[] |
EMPTY_ARRAY
|
protected static java.lang.String |
info
Descriptive information describing this Session implementation. |
| Fields inherited from class org.jboss.web.tomcat.service.session.ClusteredSipApplicationSession |
excludedAttributes, firstAccess, futureExpirationTimeOnPassivation, hasActivationListener, httpSessionsOnPassivation, invalidationPolicy, isSessionModifiedSinceLastSave, lastReplicated, maxUnreplicatedFactor, maxUnreplicatedInterval, outdatedTime, outdatedVersion, replicationExcludes, sessionAttributesDirty, sessionMetadataDirty, sipSessionsOnPassivation, sm, version |
| Fields inherited from class org.mobicents.servlet.sip.core.session.SipApplicationSessionImpl |
creationTime, currentRequestHandler, expirationTimerFuture, expirationTimerTask, expired, httpSessions, invalidateWhenReady, isValid, key, lastAccessedTime, readyToInvalidate, servletTimers, sipApplicationSessionAttributeMap, sipContext, sipSessions |
| Methods inherited from class org.jboss.web.tomcat.service.session.ClusteredSipApplicationSession |
access, activate, canAttributeBeReplicated, clearOutdated, expire, expire, getAttribute, getAttributeInternal, getAttributeNames, getAttributesInternal, getExceedsMaxUnreplicatedInterval, getLastReplicated, getMaxUnreplicatedFactor, getMaxUnreplicatedInterval, getReplicateSessionBody, getSessionAttributesDirty, getSessionMetadataDirty, getUseJK, getVersion, incrementVersion, isGetDirty, isMutable, isNewData, isOutdated, isSessionDirty, isValid, isValid, passivate, readExternal, removeAttributeInternal, removeAttributeInternal, removeExcludedAttributes, sessionAttributesDirty, sessionDirty, sessionMetadataDirty, setAttribute, setInternalAttribute, setIsOutdated, setMaxUnreplicatedFactor, setOutdatedVersion, setVersion, updateAccessTimeFromOutdatedTime, updateLastReplicated, writeExternal |
| Methods inherited from class org.mobicents.servlet.sip.core.session.SipApplicationSessionImpl |
addHttpSession, addServletTimer, addSipSession, encodeURI, encodeURL, findHttpSession, getApplicationName, getCreationTime, getCurrentRequestHandler, getExpirationTime, getId, getInvalidateWhenReady, getKey, getLastAccessedTime, getSession, getSessions, getSessions, getSipContext, getSipSession, getTimer, getTimers, hasTimerListener, invalidate, isExpired, isReadyToInvalidate, notifySipApplicationSessionListeners, onSipSessionReadyToInvalidate, removeAttribute, removeHttpSession, removeServletTimer, removeSipSession, setCurrentRequestHandler, setExpired, setExpires, setInvalidateWhenReady, setKey, tryToInvalidate |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
EMPTY_ARRAY
protected static final java.lang.String[] EMPTY_ARRAY
info
protected static final java.lang.String info
- Descriptive information describing this Session implementation.
- See Also:
- Constant Field Values
AttributeBasedClusteredSipApplicationSession
protected AttributeBasedClusteredSipApplicationSession(SipApplicationSessionKey key,
SipContext sipContext)
toString
public java.lang.String toString()
- Return a string representation of this object.
- Overrides:
toString in class ClusteredSipApplicationSession
processSessionRepl
public void processSessionRepl()
- Overrides the superclass version to read in the attributes.
- Overrides:
processSessionRepl in class JBossCacheClusteredSipApplicationSession
removeMyself
public void removeMyself()
- Description copied from class:
ClusteredSipApplicationSession
- Remove myself from the internal store.
- Specified by:
removeMyself in class ClusteredSipApplicationSession
removeMyselfLocal
public void removeMyselfLocal()
- Description copied from class:
ClusteredSipApplicationSession
- Remove myself from the local internal store.
- Specified by:
removeMyselfLocal in class ClusteredSipApplicationSession
populateAttributes
protected void populateAttributes()
- Populate the attributes stored in the distributed store to local
transient ones.
- Specified by:
populateAttributes in class JBossCacheClusteredSipApplicationSession
getJBossInternalAttribute
protected java.lang.Object getJBossInternalAttribute(java.lang.String name)
- Specified by:
getJBossInternalAttribute in class ClusteredSipApplicationSession
removeJBossInternalAttribute
protected java.lang.Object removeJBossInternalAttribute(java.lang.String name,
boolean localCall,
boolean localOnly)
- Specified by:
removeJBossInternalAttribute in class JBossCacheClusteredSipApplicationSession
getJBossInternalAttributes
protected java.util.Map getJBossInternalAttributes()
- Specified by:
getJBossInternalAttributes in class ClusteredSipApplicationSession
getJBossInternalKeys
protected java.util.Set getJBossInternalKeys()
keys
protected java.lang.String[] keys()
- Method inherited from Tomcat. Return zero-length based string if not
found.
- Overrides:
keys in class ClusteredSipApplicationSession
setJBossInternalAttribute
protected java.lang.Object setJBossInternalAttribute(java.lang.String key,
java.lang.Object value)
- Specified by:
setJBossInternalAttribute in class ClusteredSipApplicationSession
attributeChanged
protected void attributeChanged(java.lang.Object key,
java.lang.Object value,
int op)
clearAttrChangedMaps
protected void clearAttrChangedMaps()
Copyright © 2008. All Rights Reserved.