org.apache.axis2.context
Class SessionContext
java.lang.Object
org.apache.axis2.context.AbstractContext
org.apache.axis2.context.SessionContext
- All Implemented Interfaces:
- java.io.Externalizable, java.io.Serializable, SafeSerializable
public class SessionContext
- extends AbstractContext
- implements java.io.Externalizable, SafeSerializable
All the engine components are stateless across the executions and all the states should be kept in the
Contexts, there are three context Global, Session and Message.
- See Also:
- Serialized Form
Methods inherited from class org.apache.axis2.context.AbstractContext |
clearPropertyDifferences, flush, getLocalProperty, getParent, getProperties, getProperty, getPropertyDifferences, getPropertyNames, getPropertyNonReplicable, isAncestor, mergeProperties, removeProperty, removePropertyNonReplicable, setLastTouchedTime, setNonReplicableProperty, setParent, setProperties, setProperty |
Methods inherited from class java.lang.Object |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
sessionContextTimeoutInterval
public long sessionContextTimeoutInterval
SessionContext
public SessionContext(AbstractContext parent)
- Parameters:
parent
-
SessionContext
public SessionContext()
init
public void init(AxisConfiguration axisConfiguration)
throws AxisFault
- Throws:
AxisFault
getServiceContext
public ServiceContext getServiceContext(AxisService axisService)
addServiceContext
public void addServiceContext(ServiceContext serviceContext)
addServiceGroupContext
public void addServiceGroupContext(ServiceGroupContext serviceGroupContext)
getServiceGroupContext
public ServiceGroupContext getServiceGroupContext(java.lang.String serviceGroupID)
getCookieID
public java.lang.String getCookieID()
setCookieID
public void setCookieID(java.lang.String cookieID)
touch
public void touch()
- ServiceContext and ServiceGroupContext are not getting automatically garbage collectible. And there
is no specific way for some one to go and make it garbage collectable.
So the current solution is to make them time out. So the logic is that, there is a timer task
in each and every service group which will check for the last touched time. And if it has not
been touched for some time, the timer task will remove it from the memory.
The touching logic happens like this. Whenever there is a call to addMessageContext in the operationContext
it will go and update operationCOntext -> serviceContext -> serviceGroupContext.
- Overrides:
touch
in class AbstractContext
getLastTouchedTime
public long getLastTouchedTime()
- Overrides:
getLastTouchedTime
in class AbstractContext
getServiceGroupContext
public java.util.Iterator getServiceGroupContext()
finalize
protected void finalize()
throws java.lang.Throwable
- Overrides:
finalize
in class java.lang.Object
- Throws:
java.lang.Throwable
writeExternal
public void writeExternal(java.io.ObjectOutput o)
throws java.io.IOException
- Save the contents of this object.
NOTE: Transient fields and static fields are not saved.
- Specified by:
writeExternal
in interface java.io.Externalizable
- Parameters:
out
- The stream to write the object contents to
- Throws:
java.io.IOException
readExternal
public void readExternal(java.io.ObjectInput inObject)
throws java.io.IOException,
java.lang.ClassNotFoundException
- Restore the contents of the MessageContext that was
previously saved.
NOTE: The field data must read back in the same order and type
as it was written. Some data will need to be validated when
resurrected.
- Specified by:
readExternal
in interface java.io.Externalizable
- Parameters:
in
- The stream to read the object contents from
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
getRootContext
public ConfigurationContext getRootContext()
- Specified by:
getRootContext
in class AbstractContext
Copyright © 2007 Apache Web Services Project. All Rights Reserved.