[QFJ-950] Provide configuration to have garbled messages rejected instead of ignoring them Created: 07/Jun/18  Updated: 02/Aug/18  Resolved: 02/Aug/18

Status: Closed
Project: QuickFIX/J
Component/s: None
Affects Version/s: None
Fix Version/s: 2.1.0

Type: New Feature Priority: Default
Reporter: Christoph John Assignee: Christoph John
Resolution: Fixed Votes: 0
Labels: None


 Description   

In FIX it is legal to ignore a message under certain circumstances. Since FIX is an optimistic protocol it expects that some errors are transient and will correct themselves with the next message transmission. Therefore the sequence number is not incremented and a resend request is issued on the next received message that has a higher sequence number than expected.

In the case that the error is not transient, the current behaviour is not optimal because not consuming a message sequence number can lead to follow-up problems since QFJ will wait for the message to be resent and queue all subsequent messages until the resend request has been satisfied.
So we need an enhancement which will reject invalid messages, consume a message sequence number and keep the normal message flow in place.

NOTE: This will only apply to messages that reach the engine and are not failing basic validity checks. E.g. messages that do not start with "8=FIX", or have no checksum set will be ignored as before. See FIX session protocol spec, chapter "What constitutes a garbled message".

Examples of messages that will be rejected instead of ignored:

  • incorrect checksum
  • repeating group count field contains no valid integer
  • no SOH delimiter found in field

This will be implemented as a configuration option. Default behaviour will be as before, i.e. message will be ignored and not rejected.


Generated at Sat Nov 23 09:21:01 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.