Thread: [Quickfix-users] How do resends work?
Brought to you by:
orenmnero
From: abaraff <ab...@ra...> - 2011-05-10 20:12:49
|
I'm using QuickFix for .Net and I have one application that acts as an intermediary (I'll call it the SERVER). This application has a connection to the broker (BROKER) and listens for an incoming connection from a client application (CLIENT). When the CLIENT reconnects, I'd like to get a full playback of the NewOrderSubmits and ExecutionReports that have taken place that day. I assume that I should just send a ResendRequest from the CLIENT to the SERVER. I assume the BeginSeqNo is 0. How do I know what the EndSeqNo is? Does QuickFix's internal logic on the SERVER automatically handle resending these messages or do I have to do it myself? What happens if the SERVER shuts down? I'm using the FileStoreFactory and FileLogFactory. Does QuickFIX automatically retrieve prior messages from these logs or do I have to manually load the messages. Also what needs to be done to get any messages from the BROKER that have been dropped between the last message stored in the log and the reconnect. I realize there are some very open ended questions here, but I'm really not sure where to start looking. If you point me in the right direction I'm sure I can figure it out myself. I just have know way of knowing what default behavior is. Thanks, Anthony -- View this message in context: http://old.nabble.com/How-do-resends-work--tp31588898p31588898.html Sent from the QuickFIX - User mailing list archive at Nabble.com. |
From: Kenny S. <ks...@co...> - 2011-05-10 20:21:24
|
Should be entirely automatic for client and server. -- Kenny Stone Connamara Systems, LLC On Tue, May 10, 2011 at 3:12 PM, abaraff <ab...@ra...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I'm using QuickFix for .Net and I have one application that acts as an > intermediary (I'll call it the SERVER). This application has a connection > to the broker (BROKER) and listens for an incoming connection from a client > application (CLIENT). When the CLIENT reconnects, I'd like to get a full > playback of the NewOrderSubmits and ExecutionReports that have taken place > that day. I assume that I should just send a ResendRequest from the CLIENT > to the SERVER. I assume the BeginSeqNo is 0. How do I know what the > EndSeqNo is? Does QuickFix's internal logic on the SERVER automatically > handle resending these messages or do I have to do it myself? > > What happens if the SERVER shuts down? I'm using the FileStoreFactory and > FileLogFactory. Does QuickFIX automatically retrieve prior messages from > these logs or do I have to manually load the messages. Also what needs to > be done to get any messages from the BROKER that have been dropped between > the last message stored in the log and the reconnect. > > I realize there are some very open ended questions here, but I'm really not > sure where to start looking. If you point me in the right direction I'm > sure I can figure it out myself. I just have know way of knowing what > default behavior is. > > Thanks, > > Anthony > -- > View this message in context: > http://old.nabble.com/How-do-resends-work--tp31588898p31588898.html > Sent from the QuickFIX - User mailing list archive at Nabble.com. > > > > ------------------------------------------------------------------------------ > Achieve unprecedented app performance and reliability > What every C/C++ and Fortran developer should know. > Learn how Intel has extended the reach of its next-generation tools > to help boost performance applications - inlcuding clusters. > http://p.sf.net/sfu/intel-dev2devmay > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |
From: John V. <jva...@co...> - 2011-05-10 20:23:03
|
It's pretty standard FIX to have an EndSeqNo be 0 (infinity). This way, you don't have to worry about the end, you just specify the beginning. But since it sounds like CLIENT needs to get everything anyway, maybe implementing a SERVER method that overloads onLogon to send everything to the CLIENT automatically is the way to go, instead of forcing the CLIENT to do a Resend Request. John Vatianou Connamara Systems, LLC www.connamara.com On Tue, May 10, 2011 at 3:12 PM, abaraff <ab...@ra...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I'm using QuickFix for .Net and I have one application that acts as an > intermediary (I'll call it the SERVER). This application has a connection > to the broker (BROKER) and listens for an incoming connection from a client > application (CLIENT). When the CLIENT reconnects, I'd like to get a full > playback of the NewOrderSubmits and ExecutionReports that have taken place > that day. I assume that I should just send a ResendRequest from the CLIENT > to the SERVER. I assume the BeginSeqNo is 0. How do I know what the > EndSeqNo is? Does QuickFix's internal logic on the SERVER automatically > handle resending these messages or do I have to do it myself? > > What happens if the SERVER shuts down? I'm using the FileStoreFactory and > FileLogFactory. Does QuickFIX automatically retrieve prior messages from > these logs or do I have to manually load the messages. Also what needs to > be done to get any messages from the BROKER that have been dropped between > the last message stored in the log and the reconnect. > > I realize there are some very open ended questions here, but I'm really not > sure where to start looking. If you point me in the right direction I'm > sure I can figure it out myself. I just have know way of knowing what > default behavior is. > > Thanks, > > Anthony > -- > View this message in context: > http://old.nabble.com/How-do-resends-work--tp31588898p31588898.html > Sent from the QuickFIX - User mailing list archive at Nabble.com. > > > > ------------------------------------------------------------------------------ > Achieve unprecedented app performance and reliability > What every C/C++ and Fortran developer should know. > Learn how Intel has extended the reach of its next-generation tools > to help boost performance applications - inlcuding clusters. > http://p.sf.net/sfu/intel-dev2devmay > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |
From: abaraff <ab...@ra...> - 2011-05-11 13:36:15
|
There must be something that I'm missing. When I logon I'm having my CLIENT send a resend request: public void onLogon(SessionID sessionID) { System.Diagnostics.Debug.WriteLine("OnLogon:" + sessionID.ToString()); _sessionID = sessionID; QuickFix42.ResendRequest resend = new QuickFix42.ResendRequest(new BeginSeqNo(0), new EndSeqNo(0)); System.Diagnostics.Debug.WriteLine("Sending Resend"); Session.sendToTarget(resend, sessionID); } It's being received by my SERVER: FromAdmin:FIX.4.2:SCTC->SCT1 8=FIX.4.29=6935=A34=149=SCT152=20110511-13:23:47.36556=SCTC98=0108=60141=Y10=120 ToAdmin:FIX.4.2:SCTC->SCT1 8=FIX.4.29=6935=A34=149=SCTC52=20110511-13:23:47.42756=SCT198=0108=60141=Y10=119 OnLogon:FIX.4.2:SCTC->SCT1 FromAdmin:FIX.4.2:SCTC->SCT1 8=FIX.4.29=6035=234=249=SCT152=20110511-13:23:47.45856=SCTC7=016=010=149 Resend Requested ToAdmin:FIX.4.2:SCTC->SCT1 8=FIX.4.29=9335=434=143=Y49=SCTC52=20110511-13:23:47.47456=SCT1122=20110511-13:23:47.47436=2123=Y10=036 But I'm not seeing any events on the CLIENT application that correspond to messages that I've previously sent the server from the CLIENT or messages that the SERVER has sent the CLIENT. Maybe I'm using the FileStoreFactory or FileLogFactory incorrectly? Right now the FileStoreFactory uses the same destination directory every day and the FileLogFactory uses a different directory every time I start the app. Should I always provide it with the same directory? Also, what are the methods for accessing previous messages? I didn't see anything obvious in the Log object of the Session, or should I be storing them in a list for later use? Thanks, Anthony John Vatianou wrote: > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > It's pretty standard FIX to have an EndSeqNo be 0 (infinity). This way, > you > don't have to worry about the end, you just specify the beginning. > > But since it sounds like CLIENT needs to get everything anyway, maybe > implementing a SERVER method that overloads onLogon to send everything to > the CLIENT automatically is the way to go, instead of forcing the CLIENT > to > do a Resend Request. > > John Vatianou > Connamara Systems, LLC > www.connamara.com > > On Tue, May 10, 2011 at 3:12 PM, abaraff <ab...@ra...> wrote: > >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> >> I'm using QuickFix for .Net and I have one application that acts as an >> intermediary (I'll call it the SERVER). This application has a >> connection >> to the broker (BROKER) and listens for an incoming connection from a >> client >> application (CLIENT). When the CLIENT reconnects, I'd like to get a full >> playback of the NewOrderSubmits and ExecutionReports that have taken >> place >> that day. I assume that I should just send a ResendRequest from the >> CLIENT >> to the SERVER. I assume the BeginSeqNo is 0. How do I know what the >> EndSeqNo is? Does QuickFix's internal logic on the SERVER automatically >> handle resending these messages or do I have to do it myself? >> >> What happens if the SERVER shuts down? I'm using the FileStoreFactory >> and >> FileLogFactory. Does QuickFIX automatically retrieve prior messages from >> these logs or do I have to manually load the messages. Also what needs >> to >> be done to get any messages from the BROKER that have been dropped >> between >> the last message stored in the log and the reconnect. >> >> I realize there are some very open ended questions here, but I'm really >> not >> sure where to start looking. If you point me in the right direction I'm >> sure I can figure it out myself. I just have know way of knowing what >> default behavior is. >> >> Thanks, >> >> Anthony >> -- >> View this message in context: >> http://old.nabble.com/How-do-resends-work--tp31588898p31588898.html >> Sent from the QuickFIX - User mailing list archive at Nabble.com. >> >> >> >> ------------------------------------------------------------------------------ >> Achieve unprecedented app performance and reliability >> What every C/C++ and Fortran developer should know. >> Learn how Intel has extended the reach of its next-generation tools >> to help boost performance applications - inlcuding clusters. >> http://p.sf.net/sfu/intel-dev2devmay >> _______________________________________________ >> Quickfix-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-users >> > > ------------------------------------------------------------------------------ > Achieve unprecedented app performance and reliability > What every C/C++ and Fortran developer should know. > Learn how Intel has extended the reach of its next-generation tools > to help boost performance applications - inlcuding clusters. > http://p.sf.net/sfu/intel-dev2devmay > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > -- View this message in context: http://old.nabble.com/How-do-resends-work--tp31588898p31594299.html Sent from the QuickFIX - User mailing list archive at Nabble.com. |
From: John V. <jva...@co...> - 2011-05-11 14:22:16
|
I highly recommend signing up on the FIX Protocol website, downloading the 4.2 specification, and going over the Resend logic outlined there. Since you're logging in with ResetSeqNumFlag (141) set to Y, there's really nothing to ask for. Also, I don't think you can send a BeginSeqNo of 0, but check. QuickFIX will handle Resends automatically without a programmer having to do anything, if in fact SeqNums are out of sync. John Vatianou Connamara Systems, LLC On Wed, May 11, 2011 at 8:36 AM, abaraff <ab...@ra...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > There must be something that I'm missing. When I logon I'm having my > CLIENT > send a resend request: > > public void onLogon(SessionID sessionID) > { > System.Diagnostics.Debug.WriteLine("OnLogon:" + > sessionID.ToString()); > _sessionID = sessionID; > QuickFix42.ResendRequest resend = new > QuickFix42.ResendRequest(new BeginSeqNo(0), new EndSeqNo(0)); > System.Diagnostics.Debug.WriteLine("Sending Resend"); > Session.sendToTarget(resend, sessionID); > } > > It's being received by my SERVER: > > FromAdmin:FIX.4.2:SCTC->SCT1 > 8=FIX.4.2 9=69 35=A 34=1 49=SCT1 52=20110511-13:23:47.365 56=SCTC 98=0 > 108=60 141=Y 10=120 > ToAdmin:FIX.4.2:SCTC->SCT1 > 8=FIX.4.2 9=69 35=A 34=1 49=SCTC 52=20110511-13:23:47.427 56=SCT1 98=0 > 108=60 141=Y 10=119 > OnLogon:FIX.4.2:SCTC->SCT1 > FromAdmin:FIX.4.2:SCTC->SCT1 > 8=FIX.4.2 9=60 35=2 34=2 49=SCT1 52=20110511-13:23:47.458 56=SCTC 7=0 16=0 > 10=149 > Resend Requested > ToAdmin:FIX.4.2:SCTC->SCT1 > 8=FIX.4.2 9=93 35=4 34=1 43=Y 49=SCTC 52=20110511-13:23:47.474 56=SCT1 > 122=20110511-13:23:47.474 36=2 123=Y 10=036 > > But I'm not seeing any events on the CLIENT application that correspond to > messages that I've previously sent the server from the CLIENT or messages > that the SERVER has sent the CLIENT. > > Maybe I'm using the FileStoreFactory or FileLogFactory incorrectly? Right > now the FileStoreFactory uses the same destination directory every day and > the FileLogFactory uses a different directory every time I start the app. > Should I always provide it with the same directory? > > Also, what are the methods for accessing previous messages? I didn't see > anything obvious in the Log object of the Session, or should I be storing > them in a list for later use? > > Thanks, > > Anthony > > > John Vatianou wrote: > > > > QuickFIX Documentation: > > http://www.quickfixengine.org/quickfix/doc/html/index.html > > QuickFIX Support: http://www.quickfixengine.org/services.html > > > > > > It's pretty standard FIX to have an EndSeqNo be 0 (infinity). This way, > > you > > don't have to worry about the end, you just specify the beginning. > > > > But since it sounds like CLIENT needs to get everything anyway, maybe > > implementing a SERVER method that overloads onLogon to send everything to > > the CLIENT automatically is the way to go, instead of forcing the CLIENT > > to > > do a Resend Request. > > > > John Vatianou > > Connamara Systems, LLC > > www.connamara.com > > > > On Tue, May 10, 2011 at 3:12 PM, abaraff <ab...@ra...> wrote: > > > >> QuickFIX Documentation: > >> http://www.quickfixengine.org/quickfix/doc/html/index.html > >> QuickFIX Support: http://www.quickfixengine.org/services.html > >> > >> > >> I'm using QuickFix for .Net and I have one application that acts as an > >> intermediary (I'll call it the SERVER). This application has a > >> connection > >> to the broker (BROKER) and listens for an incoming connection from a > >> client > >> application (CLIENT). When the CLIENT reconnects, I'd like to get a > full > >> playback of the NewOrderSubmits and ExecutionReports that have taken > >> place > >> that day. I assume that I should just send a ResendRequest from the > >> CLIENT > >> to the SERVER. I assume the BeginSeqNo is 0. How do I know what the > >> EndSeqNo is? Does QuickFix's internal logic on the SERVER automatically > >> handle resending these messages or do I have to do it myself? > >> > >> What happens if the SERVER shuts down? I'm using the FileStoreFactory > >> and > >> FileLogFactory. Does QuickFIX automatically retrieve prior messages > from > >> these logs or do I have to manually load the messages. Also what needs > >> to > >> be done to get any messages from the BROKER that have been dropped > >> between > >> the last message stored in the log and the reconnect. > >> > >> I realize there are some very open ended questions here, but I'm really > >> not > >> sure where to start looking. If you point me in the right direction I'm > >> sure I can figure it out myself. I just have know way of knowing what > >> default behavior is. > >> > >> Thanks, > >> > >> Anthony > >> -- > >> View this message in context: > >> http://old.nabble.com/How-do-resends-work--tp31588898p31588898.html > >> Sent from the QuickFIX - User mailing list archive at Nabble.com. > >> > >> > >> > >> > ------------------------------------------------------------------------------ > >> Achieve unprecedented app performance and reliability > >> What every C/C++ and Fortran developer should know. > >> Learn how Intel has extended the reach of its next-generation tools > >> to help boost performance applications - inlcuding clusters. > >> http://p.sf.net/sfu/intel-dev2devmay > >> _______________________________________________ > >> Quickfix-users mailing list > >> Qui...@li... > >> https://lists.sourceforge.net/lists/listinfo/quickfix-users > >> > > > > > ------------------------------------------------------------------------------ > > Achieve unprecedented app performance and reliability > > What every C/C++ and Fortran developer should know. > > Learn how Intel has extended the reach of its next-generation tools > > to help boost performance applications - inlcuding clusters. > > http://p.sf.net/sfu/intel-dev2devmay > > _______________________________________________ > > Quickfix-users mailing list > > Qui...@li... > > https://lists.sourceforge.net/lists/listinfo/quickfix-users > > > > > > -- > View this message in context: > http://old.nabble.com/How-do-resends-work--tp31588898p31594299.html > Sent from the QuickFIX - User mailing list archive at Nabble.com. > > > > ------------------------------------------------------------------------------ > Achieve unprecedented app performance and reliability > What every C/C++ and Fortran developer should know. > Learn how Intel has extended the reach of its next-generation tools > to help boost performance applications - inlcuding clusters. > http://p.sf.net/sfu/intel-dev2devmay > _______________________________________________ > Quickfix-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-users > |