The Lab

Versions Compared

Key

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

This page sets out the key aspects of establishing and managing sessions between the MFSBE4 client and the Whisperer Feed Handler. In addition details are provided setting out how to initiate or terminate connectivity to the target Venue.

Table of Contents

Overview

Sessions

Session Types

Whisperer SBE4 Maintains the following session types:

...

For a given Client and given Whisperer Feed Handler deployment within MarketFactory, each session type will be assigned unique Venue connection credentials (typically TargetCompID and SenderCompID).

24x5.5 Availability

All session types are maintained directly with an individual Whisperer Feed Handler. All Feed Handlers are available 24 x 5.5 - the full trading week commencing on Sunday prior to Asia-open and ending on Friday, NY-close, irrespective of the schedule of the Venue itself.

Message Header

In addition to the default SBE message header fields (blockLength, templateId, schemaId and version), the MFSBE4 header additionally defines the mandatory population of the following fields:

...

Note
titlemsgSeqNum

This field should never be reset intra-week, for any session type.

If the Client should disconnect from Whisperer during the trading week, they must continue the message sequence.


Users

Whisperer Direct requires the configuration of at least one 'User' to be used for a given Session. In general a single User should be associated with a single Venue/Session, although there is some flexibility as set out below. 



Venue Type
SessionTypeCLOBMakerTaker
Pricing

The client may organise subscriptions across Users as it deems fit.

Note
Venues may reject multiple identical requests, so care should be taken to ensure that there is a clear demarcation of responsibility across Users.


Note

Only the last user to logout from a venue will cause Whisperer to logout from the Venue. It follows then that when multiple users are configured, when logging off prior users, it is the responsibility of the Whisperer client to ensure that the user session is cleaned up correctly prior to logout.


The client may organise subscriptions across Users as it deems fit.

Note
Venues may reject multiple identical requests, so care should be taken to ensure that there is a clear demarcation of responsibility across Users.


Note

Only the last user to logout from a venue will cause Whisperer to logout from the Venue. It follows then that when multiple users are configured, when logging off prior users, it is the responsibility of the Whisperer client to ensure that the user session is cleaned up correctly prior to logout.


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.

OrdersThe Whisperer client may distribute Orders across Users as it deems fit.The Whisperer 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 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.


Client Session Management

Logon

Session Synchronisation

The Whisperer SBE4 APi 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.

...

Gliffy Diagram
nameLogon 4.0 Sequence_3
pagePin9



 

Message Persistence

The table below specifies what messages are to be persisted and resent when necessary, as opposed to being gap-filled:

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 HandlerNo
Feed HandlerClient (Both)No
SecurityStatusFeed HandlerClient (TAKER)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
pagePin8

Session Monitoring

Active sessions are monitored at the application level by each party via Heartbeat and TestRequest messages. Indications of problems must result in the 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 (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 in it's Logon message.

...

Gliffy Diagram
name4.0 Schema_Heartbeat_3
pagePin6


Test Request

TestRequest messages may be issued by either party and under normal circumstances result in a Heartbeat being sent in response, echoing the specified TestRequestID.

...

Gliffy Diagram
name4.0 Schema_TestRequest
pagePin4



Logout

Warning

All Logout messages must be echoed with a 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.

All messages received by the Whisperer Feed Handler (from either the MFSBE4 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 MFSBE4 Client when erroneous messages are received:

...

Since there are scenarios where ErrorReport messages may not be delivered (e.g. during session abort sequences), these messages are persisted and will be delivered on reconnection.


Venue Session Management

Note

Whisperer is solely responsible for the management and correct handling of Venue-side Session Synchronisation, including the necessary logic relating to End of Day Resets etc.


Venue Logon

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

  • The MFSBE4 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 pricing/trading requests sent before this will be rejected by Whisperer via ErrorReport messages.

Venue Logoff

Venue logoff may be initiated as a result of any of the following:

...