Page History
...
- HeartBtInt
- SessionType = RFS
- Username/Password - correct
- VenueName = ?/?
Session Synchronisation
Client Logon next-expected = MF actual
Client receives TestRequest, correctly sends Heartbeat response.
Client Logon next-expected < MF actual
Client correctly handles resent messages and/or SequenceReset(GapFill) messages.
Client receives TestRequest, correctly sends Heartbeat response.
Client Logon next-expected > MF actual
Client expects disconnect.
MF LogonResponse next-expected = Client actual
Client correctly sends TestRequest and waits for Heartbeat response (this is synchronisation complete).
MF LogonResponse next-expected < Client actual
The Client correctly resends persisted stateful messages.
The Client correctly uses SequenceReset(GapFill) messages to skip over blocks of non-persisted messages. Refer to Client Session Management -MessagePersistence for details.
MF LogonResponse next-expected > Client actual
There are nine possible scenarios as per the table below, all should be verified explicitly:
Client Logon msgSeqNum vs. Gateway-expected | Client Logon NextExpectedMsgSeqNum vs. Gateway-actual | Response | Comment |
|---|---|---|---|
| < | < | Gateway sends Logout to Client and disconnects. | Unrecoverable: Client-actual < Gateway-expected. Gateway to replay. |
| > | < | Gateway sends Logon response to Client. | Logged on to Gateway. Client to replay. Gateway to replay. |
| = | < | Gateway sends Logon response to Client. | Logged on to Gateway. Client synchronised. Gateway to replay. |
| < | > | Gateway sends Logout to Client and disconnects. | Unrecoverable: Client-actual < Gateway-expected. Client expected > Gateway-actual. |
| > | > | Gateway sends Logout to Client and disconnects. | Unrecoverable: Client to replay. Client expected > Gateway-actual. |
| = | > | Gateway sends Logout to Client and disconnects. | Unrecoverable: Client synchronised. Client expected > Gateway-actual. |
| < | = | Gateway sends Logout to Client and disconnects. | Unrecoverable: Client-actual < Gateway-expected. Gateway synchronised. |
| > | = | Gateway sends Logon response to Client. | Logged on to Gateway. Client to replay. Gateway synchronised. |
| = | = | Gateway sends Logon response to Client. | Logged on to Gateway. Client synchronised. Gateway synchronised. |
Gateway to Replay
Client correctly handles resent messages and/or SequenceReset(GapFill) messages.
Client receives TestRequest, correctly sends Heartbeat response.
Client to Replay
The Client correctly resends persisted stateful messages.
The Client correctly uses SequenceReset(GapFill) messages to skip over blocks of non-persisted messages. Refer to Client Session Management -MessagePersistence for details.
Client receives TestRequest, correctly sends Heartbeat response.
Unrecoverable
Client expects disconnect.
Synchronised
Client correctly responds to Gateway TestRequest with Heartbeat.
The Gateway always sends a final TestRequest to mark and check the overall session synchronisation status. The Client correctly sends Heartbeat response.
Thus a minimum of one TestRequest/Hearbeat exchange is initiated by the Gateway, and a maximum of threeThe Client correctly disconnects.
Logoff
All client sessions must be terminated gracefully in normal circumstances.
...