Imported from previous forum
Hello all
i am interested to know what’s a typical interaction for a SequenceReset message…
is it
- LOGON
- LOGON REPLY
- SEQUENCE RESET?
if so, what would be the reply?
or is it
- LOGON with a sequenceReset flag?
w/kindest regards
marco
is it
- LOGON
- LOGON REPLY
- SEQUENCE RESET?
if so, what would be the reply?
No, the above sequence isn’t used.
SequenceReset message is sent in response to a Resend request. The receiver of Resend may send one or more Sequence reset gap-fill to skip messages it doesn’t want resend (old heartbeats for example).
The other version of SequenceReset (Reset mode) is rarely used (if at all) in production. Its sent to set the sequence number to an arbitrary high number to recover from an error.
or is it
- LOGON with a sequenceReset flag?
Thats used but its not really a SequenceReset message.
The ResetSeqNumFlag in Logon message is usually used between connections that stay connected all day and do not have an “end of day” when both disconnect. Such connections may agree to reset their seq number at some point every day.At that time one end sends a Logon with ResetSeqNumFlag set. The other end then responds with Logon with ResetSeqNumFlag set. This sets seq # of both ends at 1,1.
I have seen some non-24 hour connections also use the ResetSeqNumFlag in their first Logon message of the day - presumably to ensure that the receiver really start from 1.
Hello all
i am interested to know what’s a typical interaction for a SequenceReset message…is it
- LOGON
- LOGON REPLY
- SEQUENCE RESET?
if so, what would be the reply?or is it
- LOGON with a sequenceReset flag?
w/kindest regards
marco
Hello Kingshuk,
thanks for your reply.
I’ll have a further question for you then, as i am trying to implement
some sort of fix layer to test our internal platform.
I want to deal with teh GapFill reset sequence.
From fix docs, this is what it says for that:
‘The sequence reset message is used by the sending application to reset the incoming sequence number on the opposing side’
So,assume client C1 that connects to server S1.
C1 current seqNum is 20, and S1 seqNum is 25.
Then C1 sends a sequenceReset to S1, specifiying to reset seq at 21.
When C1 sends this sequenceReset msg, no reply is sent back from S1.
Rather, the next time that S1 sends a msg to C1, the seqNum from S1 will be 21.
is that a correct understanding?
w/kindest regards
marco
is it
- LOGON
- LOGON REPLY
- SEQUENCE RESET?
if so, what would be the reply?
No, the above sequence isn’t used.SequenceReset message is sent in response to a Resend request. The receiver of Resend may send one or more Sequence reset gap-fill to skip messages it doesn’t want resend (old heartbeats for example).
The other version of SequenceReset (Reset mode) is rarely used (if at all) in production. Its sent to set the sequence number to an arbitrary high number to recover from an error.
or is it
- LOGON with a sequenceReset flag?
Thats used but its not really a SequenceReset message.The ResetSeqNumFlag in Logon message is usually used between connections that stay connected all day and do not have an “end of day” when both disconnect. Such connections may agree to reset their seq number at some point every day.At that time one end sends a Logon with ResetSeqNumFlag set. The other end then responds with Logon with ResetSeqNumFlag set. This sets seq # of both ends at 1,1.
I have seen some non-24 hour connections also use the ResetSeqNumFlag in their first Logon message of the day - presumably to ensure that the receiver really start from 1.
Hello all
i am interested to know what’s a typical interaction for a SequenceReset message…is it
- LOGON
- LOGON REPLY
- SEQUENCE RESET?
if so, what would be the reply?or is it
- LOGON with a sequenceReset flag?
w/kindest regards
marco
So,assume client C1 that connects to server S1.
C1 current seqNum is 20, and S1 seqNum is 25.
Then C1 sends a sequenceReset to S1, specifiying to reset seq at 21.
When C1 sends this sequenceReset msg, no reply is sent back from S1.
Rather, the next time that S1 sends a msg to C1, the seqNum from S1 will be 21.
is that a correct understanding?
No. If I’ve understood your question right - you are thinking that sequence reset is used by one end of a FIX connection to set the next sequence number to be sent by the other end. Thats not right.
SequenceReset is used by a Sender (in your example C1) to set the next sequence number to be expected by the message recipient (in your example S1).
Each end of a FIX connection maintains two sequence numbers - (1)Its own current sequence number and (2)The sequence number it will receive in the next message. Lets call (2) “Next Expected Sequence Number”.
On a received message if the MsgSeqNum is higher than the “Next Expected Sequence Number” then the connection sends a “Resend Request” (specifying the range that needs to be resent).
The receiver of this Resend Request then starts replaying the messages that were requested. However some (or all) messages in the range requested may not be worth sending (they could be admin messages or business messages that are now too old to be sent). So instead of sending these the application doing the resend skips these by sending a Sequence Reset gap fill. The Sequence Reset Gap fill will contain a field called NewSeqNo. The receiver will then set its “Next Expected Sequence Number” to the NewSeqNo.
The test cases in 4.4 spec (vol 2) describes these lot more succinctly and completely than my possibly long winded explanation here.
Hello Kingshuk,
thanks for your reply.
I’ll have a further question for you then, as i am trying to implement
some sort of fix layer to test our internal platform.
I want to deal with teh GapFill reset sequence.
From fix docs, this is what it says for that:
‘The sequence reset message is used by the sending application to reset the incoming sequence number on the opposing side’So,assume client C1 that connects to server S1.
C1 current seqNum is 20, and S1 seqNum is 25.
Then C1 sends a sequenceReset to S1, specifiying to reset seq at 21.
When C1 sends this sequenceReset msg, no reply is sent back from S1.
Rather, the next time that S1 sends a msg to C1, the seqNum from S1 will be 21.
is that a correct understanding?w/kindest regards
marcois it
- LOGON
- LOGON REPLY
- SEQUENCE RESET?
if so, what would be the reply?
No, the above sequence isn’t used.SequenceReset message is sent in response to a Resend request. The receiver of Resend may send one or more Sequence reset gap-fill to skip messages it doesn’t want resend (old heartbeats for example).
The other version of SequenceReset (Reset mode) is rarely used (if at all) in production. Its sent to set the sequence number to an arbitrary high number to recover from an error.
or is it
- LOGON with a sequenceReset flag?
Thats used but its not really a SequenceReset message.The ResetSeqNumFlag in Logon message is usually used between connections that stay connected all day and do not have an “end of day” when both disconnect. Such connections may agree to reset their seq number at some point every day.At that time one end sends a Logon with ResetSeqNumFlag set. The other end then responds with Logon with ResetSeqNumFlag set. This sets seq # of both ends at 1,1.
I have seen some non-24 hour connections also use the ResetSeqNumFlag in their first Logon message of the day - presumably to ensure that the receiver really start from 1.
Hello all
i am interested to know what’s a typical interaction for a SequenceReset message…is it
- LOGON
- LOGON REPLY
- SEQUENCE RESET?
if so, what would be the reply?or is it
- LOGON with a sequenceReset flag?
w/kindest regards
marco