Page History
| Table of Contents |
|---|
Overview
Whisperer uses two messages to report unexpected events to the Client:
...
The ErrorReport is a custom, user-defined, message used by the Whisperer Feed Handler to notify the Client of any erroneous scenarios that are encountered during operation.
...
In some circumstances these may be regarded as informational, but usually they will require some action by the Client so must not be ignored.
Since there are scenarios where these ErrorReport messages may not be delivered (e.g. during session abort sequences), both these messages are persisted and will be delivered during session synchronisation as necessary.
BusinessMessageReject
BusinessMessageReject messages are sent in response to:
on re connection.
The ErrorReport category is indicated via the message Subject field.
Client
Venue Logon
In the event that a venue session is not established at the first attempt, Whisperer will notify the Client of state/progress until such time as the connection is successfully established, or the Client sends a UserRequest to terminate the logon attempts. These messages are purely informational:
Subject = VenueLogonError- The current Venue connection or logon attempt failed.Subject = VenueSeqNumError- A Venue sequence number gap was detected (either inbound or outbound).
Client Message Validation
Subject = MFAPIMessageRejected -Client Message Type Validation - The client sent a message type not supported by the Venue, for example they attempted to submit a QuoteRequest to an order-matching Venue.
Client Message Field Validation
Subject = MFAPIValidationError -Whisperer performs validation of individual message fields in order to ensure that is is always able to construct a well-formed Venue message. Should the client omit the population of a required field, or populate it with an unsupported value, then Whisperer cannot translate the message correctly, and it will not be sent to the Venue.- Venue Message Validation - A session-layer Reject message or an application-layer BusinessMessageReject was sent by the Venue to Whisperer.
The message conforms to the standard FIX application-level message as follows:
RefSeqNum -The MsgSeqNum of the rejected Client message.RefMsgType -The FIX protocol semantic type of the rejected Client message.BusinessRejectRefID -The Client-provided value of the business-level ID field on the message being referenced.BusinessRejectReason -Code to identify reason for this RejectText -Message to explain reason for this Reject. In the case of errors reported by Whisperer, this will be a JSON-formatted string, otherwise the venue rejection Text is delivered.
...
| title | BusinessMessageReject Handling |
|---|
In Production, we do not expect to receive BusinessMessageReject messages from the venue in response to client messages, but we cannot guarantee that they will not ever occur.
Should such an event occur, the Client must ensure that it recovers from the error correctly.
This should include using the BusinessRejectRefID and RefMsgType to update pricing or order state, as necessary:
...
| Warning | ||
|---|---|---|
| ||
| In the event that a Client message fails Whisperer validation checks, it is entirely the Client's responsibility to ensure that Venue state is managed correctly as a result of this error. For Production systems, MarketFactory recommends that the Client disconnect immediately, so that the necessary corrective action may be taken. |
Venue
Venue Message Validation
ErrorReport
The ErrorReport is used to provide the client with informational notifications of transient/recoverable errors that Whisperer encounters. No client action is required.
The error category is indicated via the message Subject field:
...
Subject = VenueMessageUnexpected -It is sometimes possible sometimes possible that a Venue may send unsupported messages to the Client once connected - for . For example, an ECN end-user may quite legitimately make a request for an unsupported product type. Whisperer ensures that the Client is always informed of these events by emitting an ErrorReport containing the full message details.Subject = MFAPITranslationFailure- Whisperer was unable to correctly translate between Client and Venue messages. This will only occur in erroneous circumstances, e.g. Hardware failure leading to a restart and loss of required caches.
Deprecated Usage
...
| title | Deprecated Usage |
|---|
In addition to it's use in informational contexts, the ErrorReport was originally used in place of the BusinessMessageReject. This behaviour is now deprecated, all clients are encouraged to migrate to the standard FIX message.
Client Message Validation
Subject = MFAPIMessageRejected -The client sent a message type not supported by the Venue, for example they attempted to submit a QuoteRequest to an order-matching Venue.
Client Message Field Validation
Subject = MFAPIValidationError -Whisperer performs validation of individual message fields in order to ensure that is is always able to construct a well-formed Venue message. Should the client omit the population of a required field, or populate it with an unsupported value, then Whisperer cannot translate the message correctly, and it will not be sent to the Venue.
Venue Message Validation
Session and Business Message Rejects
Subject = SessionRejectSentByMF- A Session-level Reject message was sent to the Venue by Whisperer.Subject = SessionRejectReceivedByMF- A Session-level Reject message was sent by the Venue to Whisperer.Subject = BusinessMessageRejectSentByMF- A Business-level Reject message was sent to the Venue by Whisperer.Subject = BusinessMessageRejectReceivedByMF- A Business-level Reject message was sent by the Venue to Whisperer.
Other
Subject = MFAPIForcedDisconnect- Whisperer was forced to disconnect the Client session. This will only occur in erroneous circumstances, for example the Client is unable to keep up with message rates.Subject = MFAPITranslationFailure- Whisperer was unable to correctly translate between Client and Venue messages. This will only occur in erroneous circumstances, e.g. Hardware failure leading to a restart and loss of required caches.