Whisperer uses two messages to report unexpected events to the Client:
ErrorReport - this is an informational user-defined message used to notify the Client of any erroneous scenarios that are encountered during operation. No client action is required.BusinessMessageReject - this is an actionable message used to notify the Client of message errors that have a business impact, the client is expected to take appropriate corrective action in consequence.Since there are scenarios where these messages may not be delivered (e.g. during session abort sequences), both are persisted and will be delivered during session synchronisation as necessary.
BusinessMessageReject messages are sent in response to:
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. In Production, we do not expect to receive 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:
|
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 = VenueLogonError - The current Venue connection or logon attempt failed. 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.Subject = VenueSeqNumError - A Venue sequence number gap was detected (either inbound or outbound). This is used on UDP Market Data sessions, where message delivery is not guaranteed.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 delivery rates.Subject = VenueMessageUnexpected - It is sometimes possible that a Venue may send unsupported messages to the Client once connected - 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.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
Client Message Field Validation
Venue Message Validation
|