Details
-
Type: New Feature
-
Status: Closed
-
Priority: Default
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 2.1.0
-
Component/s: None
-
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.