Page History
This page sets out the key aspects of establishing and managing sessions between the MFSBE4 client and the Whisperer a Whisperer Direct Client and a Feed Handler. In addition details are provided setting out how to initiate or terminate connectivity to the target Venue.
...
Sessions
Session Types
Whisperer SBE4 Direct Maintains the following session types:
- Pricing
- Delivery of Market Data from a CLOB Venue
- ESP mass-quotes from a Maker MFSBE4 client Client to a Taker Venue.
- ESP mass-quotes from a Maker Venue to a Taker MFSBE4 clientTaker Client.
- Orders
- Submission and execution of MFSBE4 client Client orders against a CLOB Venue.
- Orders against ESP liquidity (published on a separate Pricing session) from a Taker Venue to a Maker MFSBE4 clientClient.
- Orders against ESP liquidity (published on a separate Pricing session) from a Taker MFSBE4 client Client to a Maker Venue.
- RFS
- Full RFS/RFQ quotation negotiation life cycle between Maker MFSBE4 client Client and Taker Venue.
- Full RFS/RFQ quotation negotiation life cycle between Taker MFSBE4 client and Taker Client and Maker Venue.
- DropCopy
- Delivery of post-Trade Straight-Through Processing (STP) trade notifications. Typically this will be restricted to notifications from dedicated Venue API connections only.
...
| Venue Type | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| SessionType | CLOB | Maker | Taker | ||||||||
| Pricing | The client Client may organise subscriptions across Users as it deems fit.
| The client Client may organise subscriptions across Users as it deems fit.
| A single User must be defined. This avoids the need for configuration and logic to be maintained within MarketFactory to route each Venue ESP QuoteRequest to specific individual Users. | ||||||||
| Orders | The Whisperer client Client may distribute Orders across Users as it deems fit. | The Whisperer client Client may distribute Orders across Users as it deems fit. | A single User must be defined. This avoids the need for configuration and logic to be maintained within MarketFactory to route each Venue ESP Order to specific individual Users. | ||||||||
| RFS | - | The Whisperer client Client may distribute RFQ and/or RFS across Users as it deems fit. | A single User must be defined. This avoids the need for configuration and logic to be maintained within MarketFactory to route each Venue RFS/RFQ QuoteRequest to specific individual Users. | ||||||||
| DropCopy | This is a single feed per Venue, delivering trade notifications from the Venue to to the Customer. A single User is defined. This avoids the need for configuration and logic to be maintained within MarketFactory to route trade notifications from the Venue to specific individual users. | ||||||||||
...
All Whisperer Direct messages are exchanged over TCP, with connectivity maintained directly between the client Client and FH.
A message is deemed to have been sent, and received, successfully when:
...
Logon
Session Synchronisation
The Whisperer SBE4 APi Direct utilises the 'new' model of session synchronisation introduced in FIX 4.4. This ensures that each side can expect any sequence number gaps to be filled automatically, eliminating the need for ResendRequest messages - and the problems that historically accompany these.
The MFAPI client Client initiates a new session with a Logon message - this contains the next MsgSeqNum[34] value that the client Client expects to receive from the Whisperer Feed Handler.
The Whisperer Feed Handler validates the sequence number value as expected by the MFAPI client Client as follows:
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.
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 clientClient.
If the Client is expecting a sequence number lower than the FH's next-to-be-assigned msgSeqNum[34], 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 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 Direct - Session Management above more more detail.
...
After any inbound sequence number gaps have been resolved for the MFAPI Client , it then reciprocates in a similar manner, based on the the next MsgSeqNum[34] value that the Whisperer Feed Handler expects to receive from the client Client - as specified in it's LogonResponse.
| Warning |
|---|
The mutual exchange of TestRequest and Heartbeat (response) messages are required as verification that no sequence number gaps remain. The MFAPI client Client should only proceed with new messages after it has received the Heartbeat sent in response to it's own TestRequest. |
...
Logon to Existing Session
Any attempt by the client Client to send a Logon message on an existing session that it established previously will result in the session being aborted.
Should a second client Client attempt to establish an additional session using the same credentials as of a currently-active client Client session, then it will be rejected. The original session will be unaffected.
...
For inbound Heartbeat and TestRequest messages sent by the clientClient , the FH will allow a fixed maximum allowed message transmission time (MaxTx), currently set to one second, before treating the message as 'missed'. This is used to allow for some degree of hysteresis WRT message delivery latencies.
The client Client may specify it's own MaxTx value and logic when monitoring inbound messages sent by the FH.
In both cases only the local clock is used as reference.
Heartbeats
Once the MFAPI Client has successfully established a session with the Whisperer Feed Handler (i.e. on dispatch of the first Heartbeat message in response to the end of synchronisation TestRequest), subsequent Heartbeat messages are sent by each party at the interval specified by the MFAPI client Client in it's Logon message.
| Note |
|---|
| Unlike standard FIX sessions, MFSBE4 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. |
...
| Info | ||
|---|---|---|
| ||
MF plans to utilise the Heartbeat message to periodically publish additional metrics to and from the server/clientClient :
This functionality will be made available via a backwardly-compatible schema change. |
...
All messages received by the Whisperer Feed Handler (from either the MFSBE4 client Client or the Venue) between the exchange of Logout and LogoutResponse messages will result in ErrorReport messages being sent to the clientClient.
ErrorReport
The ErrorReport is a custom, user-defined, message used by the Whisperer Feed Handler to notify the MFSBE4 Client when erroneous messages are received:
...
Session startup behaviour is standardised across Taker, Maker and CLOB Venue types as follows:
- The MFSBE4 Client Client first establishes connection to Whisperer with Logon & LogonResponse, then establishes connection to the Venue with UserRequest (UserRequestType=LogOnUser) & UserNotification (UserStatus=LoggedOn).
- Any MFSBE4 Client Client pricing/trading requests sent before this will be rejected by Whisperer via ErrorReport messages.
...
Venue logoff may be initiated as a result of any of the following:
- A request from the MFSBE4 client Client via UserRequest (UserRequestType=LogOffUser).
- The Venue initiates a Logout (e.g. End of Day).
- Whisperer detects a dropped connection
In all scenarios, the MFSBE4 Client is notified of the event via UserNotification (UserStatus=LoggedOff).
...
| Note | ||
|---|---|---|
| ||
Illustrate multiple logon attempts to venue - 5 attempts, one minute interval, then logout to clientClient. Eg Consider Reuters MAPI. |
...