|
||||||||||
PREV CLASS NEXT CLASS (src) | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jboss.ha.hasessionstate.server.HASessionStateImpl
Default implementation of HASessionState
HASessionState
(src) Nested Class Summary |
Nested classes inherited from class org.jboss.ha.hasessionstate.interfaces.HASessionState (src) |
HASessionState.HASessionStateListener (src) |
Field Summary | |
protected java.lang.String |
_sessionStateName
|
protected java.util.Hashtable |
appSessions
|
protected long |
beanCleaningDelay
|
protected java.lang.String |
DEFAULT_PARTITION_JNDI_NAME
|
protected static java.lang.String |
HA_SESSION_STATE_STATE_TRANSFER
|
protected java.lang.String |
haPartitionJndiName
|
protected java.lang.String |
haPartitionName
|
protected HAPartition (src) |
hapGeneral
|
protected java.lang.String |
JNDI_FOLDER_NAME_FOR_HAPARTITION
|
protected java.lang.String |
JNDI_FOLDER_NAME_FOR_HASESSIONSTATE
|
protected java.util.Hashtable |
listeners
|
protected java.lang.Object |
lockAppSession
|
protected java.util.HashMap |
locks
|
protected Logger (src) |
log
|
protected long |
MAX_DELAY_BEFORE_CLEANING_UNRECLAIMED_STATE
|
protected java.lang.String |
myNodeName
|
protected java.lang.String |
sessionStateIdentifier
|
Constructor Summary | |
HASessionStateImpl()
|
|
HASessionStateImpl(java.lang.String sessionStateName,
java.lang.String mainHAPartitionName,
long beanCleaningDelay)
|
Method Summary | |
PackagedSessionImpl (src) |
_createSession(java.lang.String appName,
java.lang.Object keyId)
|
void |
_removeSession(java.lang.String appName,
java.lang.Object keyId)
|
java.lang.Boolean |
_setOwnership(java.lang.String appName,
java.lang.Object keyId,
java.lang.String newOwner,
java.lang.Long remoteVersion)
|
void |
_setState(java.lang.String appName,
PackagedSession (src) session)
|
protected void |
bind(java.lang.String jndiName,
java.lang.Object who,
java.lang.Class classType,
javax.naming.Context ctx)
|
void |
createSession(java.lang.String appName,
java.lang.Object keyId)
Share a new session state in the sub-partition of this cluster |
protected byte[] |
deflate(java.lang.Object object)
|
HAPartition (src) |
getCurrentHAPartition()
|
java.io.Serializable |
getCurrentState()
Called when a new node need to be initialized. |
protected java.util.Hashtable |
getHashtableForApp(java.lang.String appName)
|
protected Mutex |
getLock(java.lang.String appName,
java.lang.Object key)
|
java.lang.String |
getNodeName()
Return the name of this node as used in the computations |
PackagedSession (src) |
getState(java.lang.String appName,
java.lang.Object keyId)
Get a particular state |
PackagedSession (src) |
getStateWithOwnership(java.lang.String appName,
java.lang.Object keyId)
Get a state and, if it is not already the case, takes its ownership (a state is always owned by a node) |
protected java.lang.Object |
inflate(byte[] compressedContent)
|
void |
init()
|
PackagedSession (src) |
localTakeOwnership(java.lang.String appName,
java.lang.Object keyId)
|
protected boolean |
lockExists(java.lang.String appName,
java.lang.Object key)
|
void |
ownedObjectExternallyModified(java.lang.String appName,
java.lang.Object key,
PackagedSession (src) oldSession,
PackagedSession (src) newSession)
|
void |
purgeState()
|
protected void |
removeLock(java.lang.String appName,
java.lang.Object key)
|
void |
removeSession(java.lang.String appName,
java.lang.Object keyId)
Remove a session from the sub-partition |
void |
setCurrentState(java.io.Serializable newState)
This callback method is called when a new service starts on a new node: the state that it should hold is transfered to it through this callback |
void |
setState(java.lang.String appName,
java.lang.Object keyId,
byte[] state)
Modifies a state already shared |
void |
start()
|
void |
stop()
|
void |
subscribe(java.lang.String appName,
HASessionState.HASessionStateListener (src) listener)
Subscribe to receive notifications when objects gets modified on another node. |
void |
takeOwnership(java.lang.String appName,
java.lang.Object keyId)
Take ownership of a state. |
void |
unsubscribe(java.lang.String appName,
HASessionState.HASessionStateListener (src) listener)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected java.lang.String _sessionStateName
protected Logger (src) log
protected HAPartition (src) hapGeneral
protected java.lang.String sessionStateIdentifier
protected java.lang.String myNodeName
protected long beanCleaningDelay
protected java.lang.String haPartitionName
protected java.lang.String haPartitionJndiName
protected final java.lang.String DEFAULT_PARTITION_JNDI_NAME
protected final java.lang.String JNDI_FOLDER_NAME_FOR_HASESSIONSTATE
protected final java.lang.String JNDI_FOLDER_NAME_FOR_HAPARTITION
protected final long MAX_DELAY_BEFORE_CLEANING_UNRECLAIMED_STATE
protected static final java.lang.String HA_SESSION_STATE_STATE_TRANSFER
protected java.util.HashMap locks
protected java.util.Hashtable appSessions
protected java.lang.Object lockAppSession
protected java.util.Hashtable listeners
Constructor Detail |
public HASessionStateImpl()
public HASessionStateImpl(java.lang.String sessionStateName, java.lang.String mainHAPartitionName, long beanCleaningDelay)
Method Detail |
public void init() throws java.lang.Exception
init
in interface HASessionState (src)
java.lang.Exception
protected void bind(java.lang.String jndiName, java.lang.Object who, java.lang.Class classType, javax.naming.Context ctx) throws java.lang.Exception
java.lang.Exception
public void start() throws java.lang.Exception
start
in interface HASessionState (src)
java.lang.Exception
public void stop() throws java.lang.Exception
java.lang.Exception
public java.lang.String getNodeName()
HASessionState (src)
getNodeName
in interface HASessionState (src)
public java.io.Serializable getCurrentState()
HAPartition.HAPartitionStateTransfer (src)
getCurrentState
in interface HAPartition.HAPartitionStateTransfer (src)
public void setCurrentState(java.io.Serializable newState)
HAPartition.HAPartitionStateTransfer (src)
setCurrentState
in interface HAPartition.HAPartitionStateTransfer (src)
newState
- The serialized representation of the state of the new service.public void purgeState()
protected byte[] deflate(java.lang.Object object) throws java.io.IOException
java.io.IOException
protected java.lang.Object inflate(byte[] compressedContent) throws java.io.IOException
java.io.IOException
protected java.util.Hashtable getHashtableForApp(java.lang.String appName)
public void createSession(java.lang.String appName, java.lang.Object keyId)
HASessionState (src)
createSession
in interface HASessionState (src)
appName
- Application name for which is state is sharedkeyId
- Key identifier of the statepublic PackagedSessionImpl (src) _createSession(java.lang.String appName, java.lang.Object keyId)
public void setState(java.lang.String appName, java.lang.Object keyId, byte[] state) throws java.rmi.RemoteException
HASessionState (src)
setState
in interface HASessionState (src)
appName
- Application name hosting this statekeyId
- Key identifier of the state to modifystate
- New state
java.rmi.RemoteException
public void _setState(java.lang.String appName, PackagedSession (src) session)
public PackagedSession (src) getState(java.lang.String appName, java.lang.Object keyId)
HASessionState (src)
getState
in interface HASessionState (src)
appName
- Application hosting the statekeyId
- Key identifier of the state
public PackagedSession (src) getStateWithOwnership(java.lang.String appName, java.lang.Object keyId) throws java.rmi.RemoteException
HASessionState (src)
getStateWithOwnership
in interface HASessionState (src)
appName
- Application hosting the statekeyId
- Key identifier of the state
java.rmi.RemoteException
- Thrown if an exception occurs while getting the ownership of the statepublic PackagedSession (src) localTakeOwnership(java.lang.String appName, java.lang.Object keyId) throws java.rmi.RemoteException
java.rmi.RemoteException
public java.lang.Boolean _setOwnership(java.lang.String appName, java.lang.Object keyId, java.lang.String newOwner, java.lang.Long remoteVersion)
public void takeOwnership(java.lang.String appName, java.lang.Object keyId) throws java.rmi.RemoteException
HASessionState (src)
takeOwnership
in interface HASessionState (src)
appName
- Application hosting the statekeyId
- Key identifier of the state
java.rmi.RemoteException
- Trown if a communication exception occurs while asking other node to get the ownershippublic void removeSession(java.lang.String appName, java.lang.Object keyId)
HASessionState (src)
removeSession
in interface HASessionState (src)
appName
- Application hosting the statekeyId
- Key identifier of the statepublic void _removeSession(java.lang.String appName, java.lang.Object keyId)
public void subscribe(java.lang.String appName, HASessionState.HASessionStateListener (src) listener)
HASessionState (src)
subscribe
in interface HASessionState (src)
public void unsubscribe(java.lang.String appName, HASessionState.HASessionStateListener (src) listener)
unsubscribe
in interface HASessionState (src)
public void ownedObjectExternallyModified(java.lang.String appName, java.lang.Object key, PackagedSession (src) oldSession, PackagedSession (src) newSession)
public HAPartition (src) getCurrentHAPartition()
getCurrentHAPartition
in interface HASessionState (src)
protected boolean lockExists(java.lang.String appName, java.lang.Object key)
protected Mutex getLock(java.lang.String appName, java.lang.Object key)
protected void removeLock(java.lang.String appName, java.lang.Object key)
|
||||||||||
PREV CLASS NEXT CLASS (src) | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |