Page History
...
| Info | ||
|---|---|---|
| ||
The MF FH guarantees persistence of sent outbound messages for possible resend for a minimum period of three heartbeat intervals, allowing for detection of dead connections as per 39420192 Session Monitoring, below. |
| Info | ||
|---|---|---|
| ||
Any unsent messages will be persisted indefinitely until either:
|
The table below specifies what messages are to be persisted and resent when necessary, as opposed to being gap-filled:
...
If the Client is expecting a sequence number higher than the FH's next-to-be-assigned msgSeqNum, then this is an unrecoverable error and the FH will abort the session with a Logout message (using it's next sequence number).
Tip The Customer should contact MF Support to agree the correct resolution actions. - Otherwise, the FH will issue a LogonResponse message - populating NextExpectedMsgSeqNum which contains the next msgSeqNum value that it expects to receive from the Client.
If the Client is expecting a sequence number lower than the FH's next-to-be-assigned msgSeqNum (as used in the preceding Logon response), then the message gap is resolved by the FH with SequenceResetGapFill messages and/or the resending of persisted messages as necessary. The preceding LogonResponse will be gap-filled over.
Warning Should a Client specify a next-expected inbound sequence number too low (e.g. expecting '1' on re-logon just prior to weekly trading session close), then the FH will service most of the range to correct with a SequenceResetGapFill. For the more recent messages that are still persisted, these will be processed as normal.
The FH will not resend a week's worth of persisted messages. Refer to 39420192 Message Persistence above for more detail.
Resent messages are characterised by:
- Msg.messageHeader.msgSeqNum populated with the original sequence number
- Msg.messageHeader.sendingTime populated with the resend time
- Msg.TradingFlags.PossDupFlag = TRUE
- Msg.OrigSendingTime populated with Msg.messageHeader.sendingTime of original message
The Whisperer Feed Handler signals it's completion of session synchronisation with a TestRequest.
- After any inbound sequence number gaps have been resolved for the MFAPI Client , the Client then reciprocates in a similar manner, based on the the next msgSeqNum value that the Whisperer Feed Handler expects to receive from the Client - as specified in it's LogonResponse.
- The Whisperer Client signals it's completion of session synchronisation with a TestRequest.
On receipt of this Testrequest, the Whisperer Feed Handler will respond with the necessary Heartbeat and then signal it's own completion of session synchronisation with a TestRequest in the opposite direction.
Note Any new (i.e. not SequenceResetGapFill or resent) messages sent by the MFAPI Client prior to the required Heartbeat response will result in ErrorReport messages.
| Warning |
|---|
The mutual exchange of TestRequest and Heartbeat (response) messages are required as verification that no sequence number gaps remain. The MFAPI Client should only proceed with new messages after it has received sent the Heartbeat sent in response to it's own the Whisperer Feed Handler TestRequest. |
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
Erroneous Scenarios
Second Logon to Existing Session
...
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
Logout
The recipient of a Logout message must echo it with a LogoutResponse (using it's next sequence number).
...