The Lab

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Once instructed to do so by the Client User, the Feed Handler will attempt to logon to the Venue. Should a connection not be established immediately, it will periodically retry as follows:

  • On a each failed logon attempt the Feed Handler will:
    • First issue an ErrorReport(Subject= VenueLogonError, Text="Venue Logon failed, waiting <RetryInterval>s before retry."), then
    • wait RetryInterval seconds (> 0), and repeat.
  • Once MaxAttempts (> 0) failed logons occur in a row, the Feed Handler will:
    • First issue an ErrorReport(Subject= VenueLogonError, Text="Venue Logon failed, waiting <BackoffInterval>s before retry."), then
    • wait BackoffInterval seconds (>= 0) and restart the cycle.


This behaviour applies across all Feed Handlers, irrespective of line protocol, Maker/Taker perspective, or trading model.

...


Feed Handler Detection of Venue Sequence Number Gaps

Non-recoverable Inbound seqNum Gaps

If the incoming message has a sequence number less than expected and the PossDupFlag is not set, then a serious error has occurred. In this scenario, the Feed handler will issue a UserNotification(UserStatus=LoggedOff, Text="Session synchronization failure.").

Tip
In this event, the Customer should contact MF Support in order to confirm any necessary corrective action.

Recoverable Inbound seqNum Gaps

If a recoverable sequence number gap is detected on receipt of the Venue's logon response, then the Feed Handler will:

  • First issue an ErrorReport(Subject= VenueSeqNumError, Text="Issuing ResendRequest."), then
  • a ResendRequest will be issued.

Whilst a sequence gap exists, no other Venue messages will be processed until the sequence gap is resolved - via SequenceResetGapFill(s) and message resends, as the Venue deems necessary.

...

The Client User must therefore be capable of receiving and processing resent re-sent Venue messages relating to it's previous session (marked as PossResend) in the interval between the UserRequest and the UserNotification.

...

Venue Detection of Feed Handler Sequence Number Gaps

Non-recoverable Outbound seqNum Gaps

If the Feed Handler's outgoing Logon message has a lower than expected sequence number from the Venue's perspective, then a serious error has occurred. In this scenario, the Venue will terminate the session and the  Feed handler will issue a UserNotification(UserStatus=LoggedOff, Text="<Message provided by Venue>").

Tip
In this event, the Customer should contact MF Support in order to confirm any necessary corrective action.


Recoverable Outbound seqNum Gaps

If the sequence number associated with Venue Logon message issued by the Feed Handler indicates a recoverable gap, then the Venue will typically respond with a Logon response, followed by a ResendRequest.

Whisperer will respond to this as follows:

  • First issue an ErrorReport(Subject= VenueSeqNumError, Text="Responding to ResendRequest."), then
  • The gap will then be resolved via SequenceResetGapFill(s) and/or message resends, as mandated by the Venue.
  • Immediately after resolution of the sequence gap, Whisperer will formally Logout from the Venue and then re-Logon.
  • As a final verification, the Feed Handler will issue a TestRequest against the Venue; receipt of the Heartbeat response triggers Whisperer to notify the Client of successful session establishment via the UserNotification(UserStatus=LoggedOn).


Client Session Synchronisation

...

  • A request from the Client via UserRequest (UserRequestType=LogOffUser).
  • The Venue initiates a Logout (e.g. End of Day).
  • Whisperer detects a dropped connection (e.g. Network failure, Venue-initiated session termination).
  • Whisperer shutdown

In all scenarios, the Client is notified of the event via UserNotification (UserStatus=LoggedOff).

...