Resetting Message Sequence Numbers | Table of Content | Resending Messages |
Resetting Message Sequence Numbers via ResetSeqNumFlag Field |
ResetSeqNumFlag (141) field in the Logon (A) the message indicates that both sides of the FIX Session should reset sequence numbers.
To send a Logon message with this flag during FIX Connection establishment, use the setResetSeqNumFlagInFirstLogon parameter of the LogonAsInitiator(String, Int32, Boolean) method.
Note |
---|
Some FIX venues do not support this flag. |
Note |
---|
Only the first Logon message will be sent with the ResetSeqNumFlag flag. If subsequent Logon messages are sent during the automatic attempts to restore the telecommunication link they will be sent without this flag. |
To send a Logon message with the ResetSeqNumFlag flag, each time the Logon message is sent to set this flag in the Custom Logon message. The local incoming sequence number will be reset after counterparty replies with Logon message. If counterparty will reject Logon message, a local incoming sequence number still has an old value. If there is a need to reset local sequence numbers to 1 during every logon, the ResetLocalSequenceNumbersOnLogon property should be set to true.
It is also possible to send a Logon message with the ResetSeqNumFlag set when the FIX Session is established (e.g. to maintain 24 hour connectivity) using ResetSequenceNumbersViaLogonExchange() method.
Some of FIX venues replies to the initial Logon without ResetSeqNumFlag flag by the Logon with ResetSeqNumFlag flag. This case is not covered by the FIX protocol. Therefore, in such cases, if a Logon is initiated without ResetSeqNumFlag flag, then the FIX Engine will track it and if the confirmation Logon contains ResetSeqNumFlag flag, then the FIX Engine will send another confirmation Logon with ResetSeqNumFlag flag to the counterparty. This Logon should be considered as a confirmation Logon to reset sequence numbers. In order to work it properly, one needs to use only ways, described on this page, to set ResetSeqNumFlag flag. For example, you should not set this flag manually inside the outbound callback.