Sequence Reset Logic

Imported from previous forum

Hi,

I’m having an argument with a sellside about the following recovery logic:

When I login, sellside sends:

-> 35=A 34=5
<- In this sample I missed one message and my engine is expecting 34=4, thus I’m sending a resend request with BeginSeqNo=4 EndSeqNo=0
-> sellside responds with missed message 4
-> Now I would expect that sellside sends SequenceReset with MsgSeqNum=5 and NewSeqNo=6

Sellside is arguing that he can’t do that because the Logon message already had MsgSeqNum=5 and it would be incorrect to send the same MsgSeqNum again.
Sellside is saying that my engine should simply continue processing after I received the missed message, since he sent the missing message (4) and I already know (5) from the logon and thus everything should be in sync and I should continue processing.

Who is correct?

Thanks,

Tom

John, thanks a lot for your reply, your explanation makes complete sense

Hi Tom,

A ResendRequest “thru infinity” as you are requesting here says:
"Please resend me EVERYTHING from the specified sequence number thru the highest sequence number that exists.
That means that all sequence numbers 4 and higher should be resent with PossDupFlag=Y. In the case of resending a FIX admin message, such as a Logon message, a SequenceReset-Gap fill message should be used.

So you are correct, all messages should be resent with PossDupFlag=Y indicating these are resent messages and any admin messages should be gap-filled as appropriate.

Thanks

JohnP

Hi,

I’m having an argument with a sellside about the following recovery logic:

When I login, sellside sends:

→ 35=A 34=5
← In this sample I missed one message and my engine is expecting 34=4, thus I’m sending a resend request with BeginSeqNo=4 EndSeqNo=0
→ sellside responds with missed message 4
→ Now I would expect that sellside sends SequenceReset with MsgSeqNum=5 and NewSeqNo=6

Sellside is arguing that he can’t do that because the Logon message already had MsgSeqNum=5 and it would be incorrect to send the same MsgSeqNum again.
Sellside is saying that my engine should simply continue processing after I received the missed message, since he sent the missing message (4) and I already know (5) from the logon and thus everything should be in sync and I should continue processing.

Who is correct?

Thanks,

Tom