Thread: [Quickfix-developers] When are sequence numbers incremented?
Brought to you by:
orenmnero
From: djmob <dan...@bl...> - 2011-12-30 15:23:14
|
I understand that QuickFIX manages message sequence numbers (using the sequence number file) and sends ResendRequests as needed. I am a little unclear though exactly how this is done and if it works for my particular scenario. For example if the QuickFIX engine were to receive an ExecutionReport message but before fromApp() returns the process crashes, was the received sequence number count already incremented even though I did not fully process the message? I need to guarantee that fromApp () fully executed before the sequence number count is incremented, so that the correct ResendRequest message is sent upon restarting my application in case of a crash. Thanks in advance for any help. -- View this message in context: http://old.nabble.com/When-are-sequence-numbers-incremented--tp33052499p33052499.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: djmob <dan...@bl...> - 2011-12-30 15:39:25
|
>From my own testing, setting a breakpoint inside fromAdmin (instead of fromApp) looking at sequence number of the message and killing the app before letting fromAdmin return, it appears that the QuickFIX received sequence number is incremented (looking at the sequence number file) even though fromAdmin did not return. If this is correct then I need to implement some code to remember the last fully processed sequence number and then force a resend from that point forwards when my app starts as I need to guarantee that all messages were fully processed in case of a crash... I suspect I'm missing something here though as I am surprised that QuickFix increments the sequence number in this way as this seems flawed imo. I'm still learning here so any help appreciated. djmob wrote: > > I understand that QuickFIX manages message sequence numbers (using the > sequence number file) and sends ResendRequests as needed. I am a little > unclear though exactly how this is done and if it works for my particular > scenario. For example if the QuickFIX engine were to receive an > ExecutionReport message but before fromApp() returns the process crashes, > was the received sequence number count already incremented even though I > did not fully process the message? I need to guarantee that fromApp () > fully executed before the sequence number count is incremented, so that > the correct ResendRequest message is sent upon restarting my application > in case of a crash. > > Thanks in advance for any help. > > > -- View this message in context: http://old.nabble.com/When-are-sequence-numbers-incremented--tp33052499p33055252.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: Grant B. <gbi...@co...> - 2012-01-03 16:19:46
|
Seqno management is done "under the hood" so to speak. You are correct; internally, the seqno is incremented and all transport-layer processing is completed before it hands the message to the application layer. If the seqno received is incorrect, the transport layer will automatically perform the FIX-mandated behaviors, such as sending a resend request and whatnot. -Grant On Fri, Dec 30, 2011 at 9:39 AM, djmob <dan...@bl...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > >From my own testing, setting a breakpoint inside fromAdmin (instead of > fromApp) looking at sequence number of the message and killing the app > before letting fromAdmin return, it appears that the QuickFIX received > sequence number is incremented (looking at the sequence number file) even > though fromAdmin did not return. If this is correct then I need to implement > some code to remember the last fully processed sequence number and then > force a resend from that point forwards when my app starts as I need to > guarantee that all messages were fully processed in case of a crash... > > I suspect I'm missing something here though as I am surprised that QuickFix > increments the sequence number in this way as this seems flawed imo. I'm > still learning here so any help appreciated. > > > djmob wrote: >> >> I understand that QuickFIX manages message sequence numbers (using the >> sequence number file) and sends ResendRequests as needed. I am a little >> unclear though exactly how this is done and if it works for my particular >> scenario. For example if the QuickFIX engine were to receive an >> ExecutionReport message but before fromApp() returns the process crashes, >> was the received sequence number count already incremented even though I >> did not fully process the message? I need to guarantee that fromApp () >> fully executed before the sequence number count is incremented, so that >> the correct ResendRequest message is sent upon restarting my application >> in case of a crash. >> >> Thanks in advance for any help. >> >> >> > > -- > View this message in context: http://old.nabble.com/When-are-sequence-numbers-incremented--tp33052499p33055252.html > Sent from the QuickFIX - Dev mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------------ > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex > infrastructure or vast IT resources to deliver seamless, secure access to > virtual desktops. With this all-in-one solution, easily deploy virtual > desktops for less than the cost of PCs and save 60% on VDI infrastructure > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers |