[QFJ-795] "MsgSeqNum too high" should not be an error Created: 13/Jun/14  Updated: 02/Apr/15  Resolved: 18/Jun/14

Status: Closed
Project: QuickFIX/J
Component/s: Engine
Affects Version/s: 1.5.3
Fix Version/s: 1.6.0

Type: Bug Priority: Default
Reporter: Andrzej Hajderek Assignee: Christoph John
Resolution: Fixed Votes: 0
Labels: None

Attachments: File SessionTest.java.qfj-795    

 Description   

Hi,

When QuickFIX/J receives a message with sequence number higher than expected it treats is as an error. For example:

<20140613-11:59:37, FIX.4.4:SENDER->TARGET, error> (MsgSeqNum too high, expecting 1 but received 101: 8=FIX.4.49=6635=B34=10149=TARGET52=20140613-11:59:3756=SENDER148=Headline10=005)

Not only an error message is logged, but also the internal logic will disconnect the counter-party, if DisconnectOnError=Y.

I believe this logic needs to be reviewed. According to the FIX protocol it is not an error to send/receive a message with too high sequence number. A too high sequence number should simply trigger a ResendRequest in order to retrieve the missing messages, which of course QuickFIX/J does.

There is a significant difference between receiving a message with too low sequence number and too high sequence number. While the first type of event is an error according to the FIX protocol, the second one isn't.

The "MsgSeqNum too high" should be an informational message, or arguably, a warning message - not an error message.

Regards,
Andrzej Hajderek



 Comments   
Comment by Andrzej Hajderek [ 13/Jun/14 ]

The attached test demonstrates that reception of a message with too high sequence number disconnects the session. The session should not be disconnected because reception of a sequence number that is higher than expected is not an error. It is merely a reason to initiate the resend process.

Generated at Wed May 01 23:42:34 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.