Log in

4 Sequence Reset

The Sequence Reset message has two modes: Gap Fill mode and Reset mode.

Gap Fill mode

Gap Fill mode is used in response to a Resend Request <35=2> when one or more messages must be skipped. That may be because the sending application chooses not to send a message, e.g. an outdated order, or because the message is administrative and doesn't require resending, e.g. a Heartbeat <35=0> or Test Request <35=1>.

Gap Fill mode is indicated by GapFillFlag (123) = "Y".

In Gap Fill mode, the MsgSeqNum (34) should conform to standard message sequencing rules. That is, the MsgSeqNum (34) of the Sequence Reset message should represent the beginning MsgSeqNum (34) in the Gap Fill range because the remote side is expecting that next message sequence number.

Reset mode

Reset mode involves specifying an arbitrarily higher new sequence number to be expected by the receiver of the Sequence Reset message, and is used to reestablish a FIX session after an application failure.

Reset mode is indicated by the GapFillFlag (123) field = "N", or by omitting the field.

In Reset mode, it can be assumed that the purpose of the Sequence Reset message is to recover from an out-of-sequence condition. In Reset mode, the MsgSeqNum (34) in the header should be ignored. That is, the receipt of a Reset mode Sequence Reset message with an out of sequence MsgSeqNum (34) should not generate resend requests. Reset mode should not be used as a normal response to a Resend Request <35=2>; Gap Fill mode should be used.

Reset mode should only be used to recover from a disaster situation which cannot be recovered by using Gap Fill mode. Reset mode may result in the possibility of lost messages.

Processing a Sequence Reset

The sending application will initiate the Sequence Reset. The message always specifies a NewSeqNo (36) to reset to as the value of the next sequence number to be expected by the message recipient immediately following the messages and/or sequence numbers being skipped.

A Sequence Reset can only increase the sequence number. If a Sequence Reset attempts to decrease the sequence number, the message should be rejected and treated as a serious error.

It is possible to have multiple Resend Requests issued in a row, e.g. 5 to 10 followed by 5 to 11. If sequence number 8, 10, and 11 represent application messages while the 5-7 and 9 represent administrative messages, the series of messages as result of the Resend Request <35=2> may appear as Gap Fill Sequence Reset with NewSeqNo (36)=8, message 8, Gap Fill Sequence Reset with NewSeqNo (36)=10, and message 10. This could then followed by Gap Fill Sequence Reset with NewSeqNo (36)=8, message 8, a Gap Fill Sequence Reset with NewSeqNo (36)=10, message 10, and message 11. FIX engines must ignore the duplicate Gap Fill Sequence Reset which is attempting to lower the next expected sequence number.

Structure

TagNameTypeRequiredDescription
Component
Required
123Boolean
36SeqNum
Required
Component
Required