Page History
...
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.
...
| Message | Sent By | Received By | Persisted | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Logon | Client (Both) | Feed Handler | No | ||||||||
| LogonResponse | Feed Handler | Client (Both) | No | ||||||||
| Logout | Client (Both) | Feed Handler | No | ||||||||
| LogoutResponse | Feed Handler | Client (Both) | No | ||||||||
| SequenceResetGapFill | Client (Both) | Feed Handler | No | ||||||||
| Feed Handler | Client (Both) | No | |||||||||
| Heartbeat | Client (Both) | Feed Handler | No | ||||||||
| Feed Handler | Client (Both) | No | |||||||||
| TestRequest | Client (Both) | Feed Handler | No | Feed HandlerClient (Both) | No | SecurityDefinitionRequest | Client (Both) | Feed Handler | No | SecurityDefinition||
| Feed Handler | Client (Both) | No | |||||||||
| SecurityStatus | Feed Handler | Client (TAKER) | No | ||||||||
| MarketDefinitionRequest | Client (Both) | Feed Handler | No | ||||||||
| MarketDefinition | Feed Handler | Client (Both) | No | ||||||||
| UserRequest | Client (Both) | Feed Handler | No | ||||||||
| UserNotification | Feed Handler | Client (Both) | No | ||||||||
| ErrorReport | Feed Handler | Client (Both) | Yes | ||||||||
| MarketDataRequest | Client (Both) | Feed Handler | No | ||||||||
| MarketDataRequestReject | Feed Handler | Client (Both) | No | ||||||||
| MarketDataIncrementalRefresh | Feed Handler | Client (Both) | No | ||||||||
| QuoteRequest | Client (TAKER) | Feed Handler | Optional | ||||||||
| Feed Handler | Client (MAKER) | Yes | |||||||||
| QuoteRequestReject | Client (MAKER) | Feed Handler | Optional | ||||||||
| Feed Handler | Client (TAKER) | Yes | |||||||||
| Quote | Client (MAKER) | Feed Handler | No | ||||||||
| Feed Handler | Client (TAKER) | No | |||||||||
| MassQuote | Client (MAKER) | Feed Handler | No | ||||||||
| Feed Handler | Client (TAKER) | No | |||||||||
| QuoteResponse | Client (MAKER) | Feed Handler | Optional | ||||||||
| Feed Handler | Client (TAKER) | Yes | |||||||||
| Client (TAKER) | Feed Handler | Optional | |||||||||
| Feed Handler | Client (MAKER) | Yes | |||||||||
| NewOrderMultileg | Client (Both) | Feed Handler | Optional | ||||||||
| Feed Handler | Client (MAKER) | Yes | |||||||||
| OrderCancelReplaceRequest | Client (Both) | Feed Handler | Optional | ||||||||
| OrderCancelRequest | Client (Both) | Feed Handler | Optional | ||||||||
| OrderCancelReject | Feed Handler | Client (Both) | Yes | ||||||||
| OrderTimeout | Feed Handler | Client (Both) | Yes | ||||||||
| ExecutionReport | Client (MAKER) | Feed Handler | Yes | ||||||||
| Feed Handler | Client (TAKER) | Yes | |||||||||
| ExecutionAck | Client (TAKER) | Feed Handler | Optional | ||||||||
| Feed Handler | Client (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 | ||||
|---|---|---|---|---|
|
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 | ||||
|---|---|---|---|---|
|
...
| Note | ||
|---|---|---|
| ||
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 | ||
|---|---|---|
| ||
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:
...