The Lab

Versions Compared

Key

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

...

The Whisperer Feed Handler signals it's completion of session synchronisation with a TestRequest.

Note

Receipt of any new (i.e. not SequenceResetGapFill or resent) messages prior to the required Heartbeat response will result in the session being aborted.

...

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 after it has received the Heartbeat sent in response to it's own TestRequest.

...

Feed HandlerSecurityDefinition
MessageSent ByReceived ByPersisted
LogonClient (Both)Feed HandlerNo
LogonResponseFeed HandlerClient (Both)No
LogoutClient (Both)Feed HandlerNo
LogoutResponseFeed HandlerClient (Both)No
SequenceResetGapFillClient (Both)Feed HandlerNo
Feed HandlerClient (Both)No
HeartbeatClient (Both)Feed HandlerNo
Feed HandlerClient (Both)No
TestRequestClient (Both)Feed HandlerNoClient (Both)NoSecurityDefinitionRequestClient (Both)Feed HandlerNo
Feed HandlerClient (Both)No
SecurityStatusFeed HandlerClient (TAKER)No
MarketDefinitionRequestClient (Both)Feed HandlerNo
MarketDefinitionFeed HandlerClient (Both)No
UserRequestClient (Both)Feed HandlerNo
UserNotificationFeed HandlerClient (Both)No
ErrorReportFeed HandlerClient (Both)Yes
MarketDataRequestClient (Both)Feed HandlerNo
MarketDataRequestRejectFeed HandlerClient (Both)No
MarketDataIncrementalRefreshFeed HandlerClient (Both)No
QuoteRequestClient (TAKER)Feed HandlerOptional
Feed HandlerClient (MAKER)Yes
QuoteRequestRejectClient (MAKER)Feed HandlerOptional
Feed HandlerClient (TAKER)Yes
QuoteClient (MAKER)Feed HandlerNo
Feed HandlerClient (TAKER)No
MassQuoteClient (MAKER)Feed HandlerNo
Feed HandlerClient (TAKER)No
QuoteResponseClient (MAKER)Feed HandlerOptional
Feed HandlerClient (TAKER)Yes
Client (TAKER)Feed HandlerOptional
Feed HandlerClient (MAKER)Yes
NewOrderMultilegClient (Both)Feed HandlerOptional
Feed HandlerClient (MAKER)Yes
OrderCancelReplaceRequestClient (Both)Feed HandlerOptional
OrderCancelRequestClient (Both)Feed HandlerOptional
OrderCancelRejectFeed HandlerClient (Both)Yes
OrderTimeoutFeed HandlerClient (Both)Yes
ExecutionReportClient (MAKER)Feed HandlerYes
Feed HandlerClient (TAKER)Yes
ExecutionAckClient (TAKER)Feed HandlerOptional
Feed HandlerClient (MAKER)Yes


Logon

...

to Existing Session

Any attempt by the MFAPI client to log on to an existing session will result in the session being aborted.


 

Gliffy Diagram
name4.0 Schema_2ndLogon
pagePin7

Session Monitoring

Active sessions are monitored at the application level by each party via Heartbeat and TestRequest messages. Indications of problems must result in monitoring party aborting the session.

The maximum allowed message transmission time (MaxTx) between between the MFAPI Client and the Whisperer Feed Handler is fixed, currently set to one second.

Heartbeats

Once the MFAPI Client has successfully established a session with the Whisperer Feed Handler, Heartbeat messages are sent by both parties at the interval specified by the MFAPI client in it's Logon message.

Note
Unlike standard FIX sessions, Heartbeat messages must be published as a metronome - no allowance should be made based on whether or not other messages are sent within each interval.

A heartbeat is deemed to have been missed if it is not received within HeartBtInt + MaxTx seconds and results in the issuance of a TestRequest.


Gliffy Diagram
name4.0 Schema_Heartbeat_3
pagePin2

...

Note
titleTODO

User fails to respond to a testrequest and sends no messages 

Same but in the opposite direction. 

Test Request

TestRequest messages may be issued by either party and should result in a Heartbeat being sent in response, echoing the specified TestRequestID. Under normal circumstances, TestRequest messages may therefore be used to obtain an approximate indication of message round-trip times between the MFAPI Client and the Whisperer Feed Handler.



Session Termination

If no Heartbeat response is received within HeartBtInt + MaxTx seconds of the issuance of the TestRequest, then the party should abort the session with a Logout message.


Logout


All Logout messages must be echoed. If no LogoutResponse is received within HeartBtInt + MaxTx seconds of the issuance of the Logout, then the session and associated TCP socket connection shoul dbe dropped.




Note
titleTODO

Client FH logout.

User sends initiates a transaction after either sending/ receiving a logout. 

MarketDefinition and SecurityDefinition

...

Venue Login

Session startup behaviour is standardised across Taker, Maker and CLOB Venue types as follows:

...