Package com.iizix.comm.session
Class SessionTransMgr
java.lang.Object
com.iizix.comm.session.SessionTransMgr
- All Implemented Interfaces:
GCloseCodes
,GManagementConstants
,ITransactionCreator
,ISessionStatistics
,ISessionTransMgr
,TransactionCommListener
,GConstants
public class SessionTransMgr extends Object implements ISessionTransMgr, TransactionCommListener, ITransactionCreator, GConstants, GManagementConstants, GCloseCodes
The Session Transaction Manager is used for keeping track of transaction that have been received or sent to a client on session basis so that a remote session may re-establish a broken communication link.
- Author:
- Christopher Mindus
Field Summary
Fields inherited from interface com.iizix.comm.GCloseCodes
CC_APPMSG, CC_DISPOSED, CC_HISTORY_ERROR, CC_OCCUPIED, CC_PAUSE, CC_USERINFO
Fields inherited from interface com.iizix.GConstants
TRANS_ATOM, TRANS_BINARY_DATA, TRANS_BUSY, TRANS_CLIENT_LOCK, TRANS_CREATE, TRANS_DISPLAYTERMINAL, TRANS_DOWNLOAD_RESOURCES, TRANS_HOSTPRINT, TRANS_INIT, TRANS_INSTALL_RESOURCE, TRANS_LOG, TRANS_MANAGEMENT, TRANS_MESSAGE, TRANS_RELOAD, TRANS_REMOTE_CALL, TRANS_REMOTE_EVENT, TRANS_REMOTE_REPLY, TRANS_REMOVETERMINAL, TRANS_TERMINALUPDATE, TRANS_UPDATE
Fields inherited from interface com.iizix.comm.GManagementConstants
MT_CONNECTION, MT_DISPOSE_WHEN_CLOSED, MT_NEXT_SERIAL, MT_PING, MT_PONG, MT_PW, MT_RECONNECTION, MT_RESEND_TRANS
Constructor Summary
ConstructorDescriptionSessionTransMgr
(ITransactionProcessor processor) Creates a new session for a new transaction processor.Method Summary
Modifier and TypeMethodDescriptionvoid
Assigns the created transaction communications instance.void
closeClient
(String msg) Sends a close management transaction with an message in HTML format for the close reason.void
Sends a close management transaction indicating the User Name or Password were incorrect.static SessionTransMgr
createReconnectionInstance
(SocketAddress address, String reconnectID, int nextSerialReconnect) Creates a reconnection session instance for an existing transaction processor and attempts reconnection.Creates a transaction for processing normal transactions.void
dispose
(boolean doAbort) Dispose of this session by delegating it to the Session ID.void
doDispose
(boolean doAbort) Called when the session ID has been disposed of by a call to its dispose method.boolean
doPause()
Requests a pause of the session from the server.Gets the current state.Gets the transaction processor for unpackaged transactions.Gets the session.Gets the session identifier.Gets the statistics instance of the session.Gets the statistics as a snapshot.boolean
Checks if current session is connected.boolean
Checks if current session is connected.boolean
isPaused()
Checks if current session is connected.static boolean
isReconnectionInstance
(String reconnectID, String from) Checks if it's a valid reconnection session instance for an existing transaction processor and attempts reconnection.void
onCommClosed
(TransactionComm comm, int code, String reason) Called when the communication link is closed.void
onCommClosing
(TransactionComm comm) Called when the communication link is closing.void
Called when the communication link is connected.void
onCommData
(TransactionComm comm, ReadTransaction trans, int size) Called when the communication link has received data.void
onCommError
(TransactionComm comm, Throwable e) Called when the communication link is closed.void
onCommHeartBeat
(TransactionComm comm, long duration) Called when a heart-beat frame is received.void
onCommTimeout
(TransactionComm comm, boolean isReadTimeout) Called when the communication link has timed out on a read or write operation.void
Requests a ping-pong transaction.boolean
sendTransaction
(SendTransaction trans) Send a transaction to the client, assigning the transaction serial and processing statistics.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.iizix.comm.session.ISessionStatistics
getLastConnectionTime, getProperties, getProperty, setProperty
Constructor Details
SessionTransMgr
Creates a new session for a new transaction processor.- Parameters:
processor
- The transaction processor.
Method Details
isReconnectionInstance
Checks if it's a valid reconnection session instance for an existing transaction processor and attempts reconnection.- Returns:
- The instance of the Session Manager, null if the reconnection instance is not available.
createReconnectionInstance
public static SessionTransMgr createReconnectionInstance(SocketAddress address, String reconnectID, int nextSerialReconnect) Creates a reconnection session instance for an existing transaction processor and attempts reconnection.- Returns:
- The instance of the Session Manager, null if the reconnection instance is not available.
assignTransactionComm
Assigns the created transaction communications instance.getProcessor
Gets the transaction processor for unpackaged transactions.getSessionStatistics
Gets the statistics instance of the session.- Specified by:
getSessionStatistics
in interfaceISessionStatistics
- Returns:
- The SessionStatistics instance.
dispose
public void dispose(boolean doAbort) Dispose of this session by delegating it to the Session ID.- Parameters:
doAbort
- Abort-flag, if true pending transaction are not sent.
getStatisticsSnapshot
Gets the statistics as a snapshot.getSession
Gets the session.- Returns:
- The session.
getSessionID
Gets the session identifier.- Returns:
- The session identifier, or null if disposed of.
doDispose
public void doDispose(boolean doAbort) Called when the session ID has been disposed of by a call to its dispose method.- Specified by:
doDispose
in interfaceISessionTransMgr
- Parameters:
doAbort
- Abort-flag, if true pending transaction are not sent.
getCurrentState
Gets the current state.isConnected
public boolean isConnected()Checks if current session is connected. Be careful, do not forget that a connection can becomeisConnected()==false
when paused!isDisconnected
public boolean isDisconnected()Checks if current session is connected. Be careful, do not forget that a connection can becomeisConnected()==false
when paused!isPaused
public boolean isPaused()Checks if current session is connected. Be careful, do not forget that a connection can becomeisConnected()==false
when paused!doPause
public boolean doPause()Requests a pause of the session from the server.- Returns:
- true if the session still had open communication connection, false otherwise. When false is returned, the session has NOT entered real pause state.
createTransaction
Creates a transaction for processing normal transactions.- Specified by:
createTransaction
in interfaceITransactionCreator
- Returns:
- The new
Transaction
instance.
onCommConnected
Called when the communication link is connected.- Specified by:
onCommConnected
in interfaceTransactionCommListener
- Parameters:
comm
- The transaction communication instance.
onCommData
Called when the communication link has received data.- Specified by:
onCommData
in interfaceTransactionCommListener
- Parameters:
comm
- The transaction communication instance.trans
- The transaction received.size
- The size of the data received, as it may have been uncompressed.
onCommHeartBeat
Called when a heart-beat frame is received.- Specified by:
onCommHeartBeat
in interfaceTransactionCommListener
- Parameters:
comm
- The transaction communication instance.duration
- Duration of the PING-PONG message exchange in nanoseconds.
onCommTimeout
Called when the communication link has timed out on a read or write operation.- Specified by:
onCommTimeout
in interfaceTransactionCommListener
- Parameters:
comm
- The transaction communication instance.isReadTimeout
- Flag indicating read timeout when true, false indicates write timeout.
onCommError
Called when the communication link is closed.- Specified by:
onCommError
in interfaceTransactionCommListener
- Parameters:
comm
- The transaction communication instance.e
- The exception.
onCommClosing
Called when the communication link is closing.- Specified by:
onCommClosing
in interfaceTransactionCommListener
- Parameters:
comm
- The transaction communication instance.
onCommClosed
Called when the communication link is closed.- Specified by:
onCommClosed
in interfaceTransactionCommListener
- Parameters:
comm
- The transaction communication instance.
requestPingPong
public void requestPingPong()Requests a ping-pong transaction.sendTransaction
Send a transaction to the client, assigning the transaction serial and processing statistics.- Parameters:
trans
- The transaction to send.- Returns:
- true for success, false for failure.
closeClientAuthenticationInfo
Sends a close management transaction indicating the User Name or Password were incorrect.- Parameters:
info
- The information string.
closeClient
Sends a close management transaction with an message in HTML format for the close reason.- Parameters:
msg
- The close reason in HTML format.