Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Quickfix reset sequence number at start time but not set ResetSeqNum in Logon message

Tags:

quickfix

When the quickfix initiator reconnects at startTime (defined in config) it deletes the files with sequence number, but does not set ResetSeqNumFlag to Y, and the server replies with a Logout message with text "seq msg number to low ..." Is there a way to set ResetSeqNumFlag = Y only for this behavior? I don`t want to reset the sequence on every log-on.

like image 705
user166344 Avatar asked Oct 08 '13 15:10

user166344


2 Answers

This appears to be a QuickFIX/J quirk (some might consider it a bug). If ResetOnLogon=N then no ResetSeqNumFlag=Y is sent when the session start time triggers a logon. If ResetOnLogon=Y, the ResetSeqNumFlag=Y is sent on every logon. I believe this is not a big problem in practice because participants in a FIX session typically reset their sequence numbers locally after a session ends (logically ends at the end time, not a connection disconnect).

If you want to slightly modify the source code to implement this behavior, you'd modify the quickfix.Session next() method. You could add a local flag that indicates a session has restarted (per the schedule as determined by checkSessionTime()). Pass that flag to generateLogon() and that method would use it to determine when to send ResetSeqNumFlag=Y regardless of the ResetOnLogon configuration.

like image 97
Frank Smith Avatar answered Nov 10 '22 00:11

Frank Smith


I don`t want to reset the sequence on every log-on.

Then don't do it! Set ResetOnLogon=N.

At StartTime, the session will reset sequence numbers always. If ResetOnLogon=N, then they won't reset again until the next StartTime.

The initiator and acceptor should always have matching ResetOnXXX settings.

like image 40
Grant Birchmeier Avatar answered Nov 10 '22 01:11

Grant Birchmeier