Page History
...
The MFAPI Client initiates a new session with a Logon message - this populating NextExpectedMsgSeqNum[789] which contains the next MsgSeqNum[34] value msgSeqNum value that the Client expects to receive from the Whisperer Feed Handler.
...
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 containing the next MsgSeqNum[34] 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
[34](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.
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 Whisperer Enterprise - Session Management above
more more detail.
...
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 FH will then issue a LogonResponse message - populating NextExpectedMsgSeqNum[789] which contains the next msgSeqNum value that it expects to receive from the Client.
The Whisperer Feed Handler signals it's completion of session synchronisation with a TestRequest.
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.
- 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.
| 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 the Heartbeat sent in response to it's own TestRequest. |
...
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
Logout
...
The recipient of a Logout message must echo it with a LogoutResponse (using it's next sequence number).
- It is the responsibility of the Logout initiator to terminate the socket connection on receipt of the
...
- LogoutResponse.
- If no LogoutResponse is received within HeartBtInt + MaxTx seconds of the issuance of the Logout, then the session and associated TCP socket connection must be dropped.
| Warning |
|---|
All messages received by the Whisperer Feed Handler (from either the Client or the Venue) between the exchange of Logout and LogoutResponse messages will result in ErrorReport messages being sent to the Client. |
ErrorReport
The ErrorReport is a custom, user-defined, message used by the Whisperer Feed Handler to notify the Client when erroneous messages are received:
...
| Gliffy Diagram | ||||
|---|---|---|---|---|
|
| Note | ||
|---|---|---|
| ||
Illustrate multiple logon attempts to venue - 5 attempts, one minute interval, then logout to Client. Eg Consider Reuters MAPI. |
| Note | ||
|---|---|---|
| ||
Illustrate EOD session/seq num resets. |
...