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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With