|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.mobicents.servlet.sip.core.session.SipSessionImpl
org.jboss.web.tomcat.service.session.ClusteredSipSession
org.jboss.web.tomcat.service.session.JBossCacheClusteredSipSession
org.jboss.web.tomcat.service.session.SessionBasedClusteredSipSession
public class SessionBasedClusteredSipSession
Implementation of a clustered sip session for the JBossCacheManager. This class is based on the following Jboss class org.jboss.web.tomcat.service.session.SessionBasedClusteredSession JBOSS AS 4.2.2 Tag The replication granularity level is session based; that is, we replicate per whole session object. We use JBossCache for our internal replicated data store. The internal structure in JBossCache is as follows:
/SIPSESSION
/hostname
/sip_application_name (path + session id is unique)
/sipappsessionid Map(id, session)
(VERSION_KEY, version) // Used for version tracking. version is an Integer.
/sipsessionid Map(id, session)
(VERSION_KEY, version) // Used for version tracking. version is an Integer.
Note that the isolation level of the cache dictates the
concurrency behavior.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class org.mobicents.servlet.sip.core.session.SipSessionImpl |
|---|
SipSessionImpl.SipSessionEventType |
| Nested classes/interfaces inherited from interface javax.servlet.sip.SipSession |
|---|
SipSession.State |
| Field Summary | |
|---|---|
protected static java.lang.String |
info
Descriptive information describing this Session implementation. |
| Fields inherited from class org.jboss.web.tomcat.service.session.JBossCacheClusteredSipSession |
|---|
proxy_ |
| Fields inherited from class org.jboss.web.tomcat.service.session.ClusteredSipSession |
|---|
excludedAttributes, firstAccess, hasActivationListener, invalidationPolicy, isSessionModifiedSinceLastSave, lastReplicated, maxUnreplicatedFactor, maxUnreplicatedInterval, outdatedTime, outdatedVersion, replicationExcludes, sessionAttributesDirty, sessionMetadataDirty, sipAppSessionParentKey, sm, version |
| Fields inherited from class org.mobicents.servlet.sip.core.session.SipSessionImpl |
|---|
creationTime, derivedSipSessions, handlerServlet, invalidateWhenReady, isValid, key, lastAccessedTime, ongoingTransactions, outboundInterface, parentSession, proxyBranch, readyToInvalidate, routingRegion, sessionCreatingDialog, sessionCreatingTransaction, sipApplicationSession, sipFactory, sipSessionAttributeMap, state, stateInfo, subscriberURI, supervisedMode, userPrincipal |
| Constructor Summary | |
|---|---|
SessionBasedClusteredSipSession(SipSessionKey key,
SipFactoryImpl sipFactoryImpl,
MobicentsSipApplicationSession mobicentsSipApplicationSession)
|
|
| Method Summary | |
|---|---|
protected java.lang.Object |
getJBossInternalAttribute(java.lang.String name)
|
protected java.util.Map |
getJBossInternalAttributes()
|
boolean |
getReplicateSessionBody()
Overrides the superclass version to return true if either
the metadata or the attributes are dirty. |
protected void |
populateAttributes()
Does nothing -- all attributes are populated already |
void |
readExternal(java.io.ObjectInput in)
Overrides the superclass version by additionally reading the attributes map. |
protected java.lang.Object |
removeJBossInternalAttribute(java.lang.String name,
boolean localCall,
boolean localOnly)
|
void |
removeMyself()
Remove myself from the internal store. |
void |
removeMyselfLocal()
Remove myself from the |
protected java.lang.Object |
setJBossInternalAttribute(java.lang.String name,
java.lang.Object value)
|
java.lang.String |
toString()
Return a string representation of this object. |
void |
writeExternal(java.io.ObjectOutput out)
Overrides the superclass version by appending the attributes map. |
| Methods inherited from class org.jboss.web.tomcat.service.session.JBossCacheClusteredSipSession |
|---|
establishProxy, initAfterLoad, processSessionRepl, removeAttributeInternal, removeFromManager, removeJBossInternalAttribute |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected static final java.lang.String info
| Constructor Detail |
|---|
public SessionBasedClusteredSipSession(SipSessionKey key,
SipFactoryImpl sipFactoryImpl,
MobicentsSipApplicationSession mobicentsSipApplicationSession)
key - sipFactoryImpl - mobicentsSipApplicationSession - | Method Detail |
|---|
public java.lang.String toString()
toString in class ClusteredSipSessionpublic void removeMyself()
ClusteredSipSession
removeMyself in class ClusteredSipSessionpublic void removeMyselfLocal()
ClusteredSipSession
removeMyselfLocal in class ClusteredSipSessionprotected void populateAttributes()
populateAttributes in class JBossCacheClusteredSipSessionprotected java.lang.Object getJBossInternalAttribute(java.lang.String name)
getJBossInternalAttribute in class ClusteredSipSession
protected java.lang.Object removeJBossInternalAttribute(java.lang.String name,
boolean localCall,
boolean localOnly)
removeJBossInternalAttribute in class JBossCacheClusteredSipSessionprotected java.util.Map getJBossInternalAttributes()
getJBossInternalAttributes in class ClusteredSipSession
protected java.lang.Object setJBossInternalAttribute(java.lang.String name,
java.lang.Object value)
setJBossInternalAttribute in class ClusteredSipSession
public void readExternal(java.io.ObjectInput in)
throws java.io.IOException,
java.lang.ClassNotFoundException
This method is deliberately public so it can be used to reset the internal state of a session object using serialized contents replicated from another JVM via JBossCache.
readExternal in interface java.io.ExternalizablereadExternal in class ClusteredSipSessionjava.io.IOException
java.lang.ClassNotFoundExceptionClusteredSession.readExternal(java.io.ObjectInput)
public void writeExternal(java.io.ObjectOutput out)
throws java.io.IOException
ClusteredSession#excludedAttributes.
writeExternal in interface java.io.ExternalizablewriteExternal in class ClusteredSipSessionjava.io.IOExceptionClusteredSession.writeExternal(java.io.ObjectOutput)public boolean getReplicateSessionBody()
true if either
the metadata or the attributes are dirty.
getReplicateSessionBody in class ClusteredSipSession
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||