Re: [Quickfix-developers] SequenceReset bug?
Brought to you by:
orenmnero
From: <or...@qu...> - 2008-06-26 14:50:40
|
> Hi, > Thanks for the quick reply. > > you request all messages up to 507 > Yes. And I receive them. However, the last message sent from the counterparty > is a Sequence Reset message specifying NewSeqNo=508, meaning the next message > they will send (they do not know nor care about the queue on my side, > obviously) will have a sequence number of 508. No. That is not what it means. All it means is that they have completed the resend request up to message 507. It does not mean that 508 is the next message you should be expecting. You already received 508, and unless you explicitly request 508, they should not be sending it to you again. They don't need to know about your queue, they just need to know they already sent the message. You can do a resend request any time for any reason. If the last message you received was 10,000, and you decide on a whim you want to see messages 20-50 again, this does not mean they can start sending you new messages starting with 51. One has nothing to do with the other. > I assume that by that point QuickFix does expect 508, but I guess that > processing the queued message causes it to expect 509 - this seems to > contradict FIX as it modifies expectations from the counterparty accoring to a > unilateral event (i.e. processing something queues on my side, older than the > last message received from the counterparty). Not only does the behavior not contradict the expectations of the protocol, it explicitly adheres to a reccomendation in the specification: "It is also recommended that an engine should store out of sequence messages in a temporary queue and process them in order when the gap is closed. This prevents generating resend requests for n->m, n->m+1, n->m+2, ... which can result in many resent PossDupFlag=Y messages." > I've checked with the counterparty, and this is the way they work with all of > their customers... > What do you say? I say they are incorrect in their behavior if it is as you described and they are. Now, can we add a setting that will turn off queing so it can adapt to this behavior? Absolutely, and I think we will do this because we want to be able to communicate with whatever is out there even if not completely correct. |