The Lab

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from this space and version 1.1.5

...

  • 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

ResponseComment
<<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.

...