Thread: [Quickfix-developers] Initiator Reconnect?
Brought to you by:
orenmnero
From: Robert L. <le...@qe...> - 2009-11-09 18:22:33
|
I am using the C++ library for QuickFIX version 1.12.4. I have a FIX::Application implementation that successfully connects to and logs into the executor example application (that comes with the library). Things seem to be working as expected however if the client starts up after the executor server or the executor server goes down and doesn't come up within 15 seconds, the client doesn't attempt to connect to it. I assume that should expect the client to retry connecting to the server but that is not happening and do I see anything relevant in the docs at http://www.quickfixengine.org/quickfix/doc/html/index.html To make things clear here are the two scenarios I quickly outlined: 1) Client starts before Server a. Execute my application b. Wait a few seconds c. Client application logs "Connecting to localhost on port 5001" d. Start executor server (using run_executor_cpp) e. Executor starts up successfully f. Client application never retries to connect to executor server 2) Server exists/crashes before Client a. Start executor server (using run_executor_cpp) b. Executor starts up successfully c. Execute my application d. Connection is made and login successful e. Kill executor server (manually for testing) f. Client application gets disconnect and logout event g. Client application attempts to reconnect and logs "Connecting to localhost on port 5001" h. Wait 15 or so seconds i. Start executor server (using run_executor_cpp) j. Executor starts up successfully k. Client application never retries to connect to executor server Should I be doing something in code to get this reconnect behavior working? Thanks, Robert Levas Systems Architect/Developer QED Financial Systems, Inc. 10,000 Sagemore Marlton, New Jersey 08053 USA tel 856.797.1200 fax 856.797.9719 email <mailto:le...@QE...> le...@QE... This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, which is the exclusive property of QED Financial Systems. |
From: Grant B. <gbi...@co...> - 2009-11-09 18:34:48
|
What does your config look like? Is your initiator configured to attempt to reconnect? See "ReconnectInterval" in the "Initiator" section: http://quickfixengine.org/quickfix/doc/html/configuration.html -Grant On Mon, Nov 9, 2009 at 12:22 PM, Robert Levas <le...@qe...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I am using the C++ library for QuickFIX version 1.12.4. > > > > I have a FIX::Application implementation that successfully connects to and logs into the executor example application (that comes with the library). Things seem to be working as expected however if the client starts up after the executor server or the executor server goes down and doesn’t come up within 15 seconds, the client doesn’t attempt to connect to it. I assume that should expect the client to retry connecting to the server but that is not happening and do I see anything relevant in the docs at http://www.quickfixengine.org/quickfix/doc/html/index.html > > > > To make things clear here are the two scenarios I quickly outlined: > > 1) Client starts before Server > > a. Execute my application > > b. Wait a few seconds > > c. Client application logs “Connecting to localhost on port 5001” > > d. Start executor server (using run_executor_cpp) > > e. Executor starts up successfully > > f. Client application never retries to connect to executor server > > 2) Server exists/crashes before Client > > a. Start executor server (using run_executor_cpp) > > b. Executor starts up successfully > > c. Execute my application > > d. Connection is made and login successful > > e. Kill executor server (manually for testing) > > f. Client application gets disconnect and logout event > > g. Client application attempts to reconnect and logs “Connecting to localhost on port 5001” > > h. Wait 15 or so seconds > > i. Start executor server (using run_executor_cpp) > > j. Executor starts up successfully > > k. Client application never retries to connect to executor server > > > > Should I be doing something in code to get this reconnect behavior working? > > > > Thanks, > > Robert Levas > > Systems Architect/Developer > > QED Financial Systems, Inc. > > 10,000 Sagemore > Marlton, New Jersey 08053 USA > > tel 856.797.1200 > > fax 856.797.9719 > > email le...@QE... > > This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named > above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution > or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, > which is the exclusive property of QED Financial Systems. > > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: Robert L. <le...@qe...> - 2009-11-09 20:10:02
|
Doh... when looking at the configuration docs, I searched for "disconnect", "drop", etc... and apparently never looked for "reconnect". I will try this and see if it works, however according to the docs, the default is 30 seconds and I waited longer that for the reconnect. Also according to what I observed, a reconnect was attempting once after 15 seconds. Thanks for pointing me in (hopefully) the right direction. Rob -----Original Message----- From: Grant Birchmeier [mailto:gbi...@co...] Sent: Monday, November 09, 2009 1:35 PM To: le...@qe... Cc: qui...@li... Subject: Re: [Quickfix-developers] Initiator Reconnect? What does your config look like? Is your initiator configured to attempt to reconnect? See "ReconnectInterval" in the "Initiator" section: http://quickfixengine.org/quickfix/doc/html/configuration.html -Grant On Mon, Nov 9, 2009 at 12:22 PM, Robert Levas <le...@qe...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I am using the C++ library for QuickFIX version 1.12.4. > > > > I have a FIX::Application implementation that successfully connects to and logs into the executor example application (that comes with the library). Things seem to be working as expected however if the client starts up after the executor server or the executor server goes down and doesnt come up within 15 seconds, the client doesnt attempt to connect to it. I assume that should expect the client to retry connecting to the server but that is not happening and do I see anything relevant in the docs at http://www.quickfixengine.org/quickfix/doc/html/index.html > > > > To make things clear here are the two scenarios I quickly outlined: > > 1) Client starts before Server > > a. Execute my application > > b. Wait a few seconds > > c. Client application logs Connecting to localhost on port 5001 > > d. Start executor server (using run_executor_cpp) > > e. Executor starts up successfully > > f. Client application never retries to connect to executor server > > 2) Server exists/crashes before Client > > a. Start executor server (using run_executor_cpp) > > b. Executor starts up successfully > > c. Execute my application > > d. Connection is made and login successful > > e. Kill executor server (manually for testing) > > f. Client application gets disconnect and logout event > > g. Client application attempts to reconnect and logs Connecting to localhost on port 5001 > > h. Wait 15 or so seconds > > i. Start executor server (using run_executor_cpp) > > j. Executor starts up successfully > > k. Client application never retries to connect to executor server > > > > Should I be doing something in code to get this reconnect behavior working? > > > > Thanks, > > Robert Levas > > Systems Architect/Developer > > QED Financial Systems, Inc. > > 10,000 Sagemore > Marlton, New Jersey 08053 USA > > tel 856.797.1200 > > fax 856.797.9719 > > email le...@QE... > > This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named > above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution > or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, > which is the exclusive property of QED Financial Systems. > > > > ---------------------------------------------------------------------------- -- > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: Robert L. <le...@qe...> - 2009-11-09 20:30:21
|
I actually had the ReconnectInterval property set and the reconnect attempt only occurred once. If the server was not up at that time, no additional reconnects are made. Robert -----Original Message----- From: Robert Levas [mailto:le...@qe...] Sent: Monday, November 09, 2009 3:10 PM To: 'Grant Birchmeier' Cc: qui...@li... Subject: Re: [Quickfix-developers] Initiator Reconnect? QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Doh... when looking at the configuration docs, I searched for "disconnect", "drop", etc... and apparently never looked for "reconnect". I will try this and see if it works, however according to the docs, the default is 30 seconds and I waited longer that for the reconnect. Also according to what I observed, a reconnect was attempting once after 15 seconds. Thanks for pointing me in (hopefully) the right direction. Rob -----Original Message----- From: Grant Birchmeier [mailto:gbi...@co...] Sent: Monday, November 09, 2009 1:35 PM To: le...@qe... Cc: qui...@li... Subject: Re: [Quickfix-developers] Initiator Reconnect? What does your config look like? Is your initiator configured to attempt to reconnect? See "ReconnectInterval" in the "Initiator" section: http://quickfixengine.org/quickfix/doc/html/configuration.html -Grant On Mon, Nov 9, 2009 at 12:22 PM, Robert Levas <le...@qe...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I am using the C++ library for QuickFIX version 1.12.4. > > > > I have a FIX::Application implementation that successfully connects to and logs into the executor example application (that comes with the library). Things seem to be working as expected however if the client starts up after the executor server or the executor server goes down and doesnt come up within 15 seconds, the client doesnt attempt to connect to it. I assume that should expect the client to retry connecting to the server but that is not happening and do I see anything relevant in the docs at http://www.quickfixengine.org/quickfix/doc/html/index.html > > > > To make things clear here are the two scenarios I quickly outlined: > > 1) Client starts before Server > > a. Execute my application > > b. Wait a few seconds > > c. Client application logs Connecting to localhost on port 5001 > > d. Start executor server (using run_executor_cpp) > > e. Executor starts up successfully > > f. Client application never retries to connect to executor server > > 2) Server exists/crashes before Client > > a. Start executor server (using run_executor_cpp) > > b. Executor starts up successfully > > c. Execute my application > > d. Connection is made and login successful > > e. Kill executor server (manually for testing) > > f. Client application gets disconnect and logout event > > g. Client application attempts to reconnect and logs Connecting to localhost on port 5001 > > h. Wait 15 or so seconds > > i. Start executor server (using run_executor_cpp) > > j. Executor starts up successfully > > k. Client application never retries to connect to executor server > > > > Should I be doing something in code to get this reconnect behavior working? > > > > Thanks, > > Robert Levas > > Systems Architect/Developer > > QED Financial Systems, Inc. > > 10,000 Sagemore > Marlton, New Jersey 08053 USA > > tel 856.797.1200 > > fax 856.797.9719 > > email le...@QE... > > This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named > above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution > or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, > which is the exclusive property of QED Financial Systems. > > > > ---------------------------------------------------------------------------- -- > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > ---------------------------------------------------------------------------- -- Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
From: Grant B. <gbi...@co...> - 2009-11-09 21:30:42
|
I don't have any more ideas. Post your config? On Mon, Nov 9, 2009 at 2:30 PM, Robert Levas <le...@qe...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > I actually had the ReconnectInterval property set and the reconnect attempt > only occurred once. If the server was not up at that time, no additional > reconnects are made. > > Robert > > > -----Original Message----- > From: Robert Levas [mailto:le...@qe...] > Sent: Monday, November 09, 2009 3:10 PM > To: 'Grant Birchmeier' > Cc: qui...@li... > Subject: Re: [Quickfix-developers] Initiator Reconnect? > > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Doh... when looking at the configuration docs, I searched for "disconnect", > "drop", etc... and apparently never looked for "reconnect". I will try this > and see if it works, however according to the docs, the default is 30 > seconds and I waited longer that for the reconnect. Also according to what > I observed, a reconnect was attempting once after 15 seconds. > > Thanks for pointing me in (hopefully) the right direction. > > Rob > > > > -----Original Message----- > From: Grant Birchmeier [mailto:gbi...@co...] > Sent: Monday, November 09, 2009 1:35 PM > To: le...@qe... > Cc: qui...@li... > Subject: Re: [Quickfix-developers] Initiator Reconnect? > > What does your config look like? Is your initiator configured to > attempt to reconnect? > > See "ReconnectInterval" in the "Initiator" section: > http://quickfixengine.org/quickfix/doc/html/configuration.html > > -Grant > > On Mon, Nov 9, 2009 at 12:22 PM, Robert Levas > <le...@qe...> wrote: >> QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> >> I am using the C++ library for QuickFIX version 1.12.4. >> >> >> >> I have a FIX::Application implementation that successfully connects to and > logs into the executor example application (that comes with the library). > Things seem to be working as expected however if the client starts up after > the executor server or the executor server goes down and doesn’t come up > within 15 seconds, the client doesn’t attempt to connect to it. I assume > that should expect the client to retry connecting to the server but that is > not happening and do I see anything relevant in the docs at > http://www.quickfixengine.org/quickfix/doc/html/index.html >> >> >> >> To make things clear here are the two scenarios I quickly outlined: >> >> 1) Client starts before Server >> >> a. Execute my application >> >> b. Wait a few seconds >> >> c. Client application logs “Connecting to localhost on port 5001” >> >> d. Start executor server (using run_executor_cpp) >> >> e. Executor starts up successfully >> >> f. Client application never retries to connect to executor server >> >> 2) Server exists/crashes before Client >> >> a. Start executor server (using run_executor_cpp) >> >> b. Executor starts up successfully >> >> c. Execute my application >> >> d. Connection is made and login successful >> >> e. Kill executor server (manually for testing) >> >> f. Client application gets disconnect and logout event >> >> g. Client application attempts to reconnect and logs “Connecting to > localhost on port 5001” >> >> h. Wait 15 or so seconds >> >> i. Start executor server (using run_executor_cpp) >> >> j. Executor starts up successfully >> >> k. Client application never retries to connect to executor server >> >> >> >> Should I be doing something in code to get this reconnect behavior > working? >> >> >> >> Thanks, >> >> Robert Levas >> >> Systems Architect/Developer >> >> QED Financial Systems, Inc. >> >> 10,000 Sagemore >> Marlton, New Jersey 08053 USA >> >> tel 856.797.1200 >> >> fax 856.797.9719 >> >> email le...@QE... >> >> This electronic message is intended only for the receipt by, and the > personal and confidential use of, the designated recipient(s) named >> above. If you are not an intended recipient of this electronic message > you are hereby notified that any review, dissemination, distribution >> or copy of this message is strictly prohibited. QED Financial Systems, > Inc. reserves all rights to the content of this electronic message, >> which is the exclusive property of QED Financial Systems. >> >> >> >> > ---------------------------------------------------------------------------- > -- >> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 > 30-Day >> trial. Simplify your report design, integration and deployment - and focus > on >> what you do best, core application coding. Discover what's new with >> Crystal Reports now. http://p.sf.net/sfu/bobj-july >> _______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >> > > > > ---------------------------------------------------------------------------- > -- > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus > on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: Robert L. <le...@qe...> - 2009-11-10 20:06:28
|
Apparently this appears to be a bug in how the connection workflow is set up. What seems to happen is 1) When the Initiator is initialized, a connection for every configured Session is created and placed in the "disconnected" bin 2) Later, a SocketInitiator::onStart which invokes the Initiator::connect method 3) Each connection in the "disconnected" bin is tested and then passed to the SocketInitiator::doConnect method, which a. removes the connection from the "disconnected" bin and places it in the "pending" bin b. calls "connect" on the connection 4) If the connection connects all is well, however if a connection is not made by some timeout value, SocketInitiator::onTimeout is invoked, which a. Check to see a retry is allowed based on the last time it was tried b. Attempts to reconnect using the Initiator::connect method (as in item #2, above). The issue is that when the connect method is called again, the connection(s) that timed out were never moved from the "pending" bin to the "disconnected" bin and therefore a connection is never retried. This is because the connect method only works on connections in the "disconnected" bin - which makes sense. I will be summiting a bug report as soon as I can get an OpenID and log into the appropriate SourceForge bug tracker. Robert Levas Systems Architect/Developer QED Financial Systems, Inc. 10,000 Sagemore Marlton, New Jersey 08053 USA tel 856.797.1200 fax 856.797.9719 email le...@QE... This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, which is the exclusive property of QED Financial Systems. From: Robert Levas [mailto:le...@qe...] Sent: Monday, November 09, 2009 1:22 PM To: qui...@li... Subject: [Quickfix-developers] Initiator Reconnect? I am using the C++ library for QuickFIX version 1.12.4. I have a FIX::Application implementation that successfully connects to and logs into the executor example application (that comes with the library). Things seem to be working as expected however if the client starts up after the executor server or the executor server goes down and doesn't come up within 15 seconds, the client doesn't attempt to connect to it. I assume that should expect the client to retry connecting to the server but that is not happening and do I see anything relevant in the docs at http://www.quickfixengine.org/quickfix/doc/html/index.html To make things clear here are the two scenarios I quickly outlined: a. Client starts before Server b. Execute my application c. Wait a few seconds d. Client application logs "Connecting to localhost on port 5001" e. Start executor server (using run_executor_cpp) f. Executor starts up successfully g. Client application never retries to connect to executor server h. Server exists/crashes before Client i. Start executor server (using run_executor_cpp) j. Executor starts up successfully k. Execute my application l. Connection is made and login successful m. Kill executor server (manually for testing) n. Client application gets disconnect and logout event o. Client application attempts to reconnect and logs "Connecting to localhost on port 5001" p. Wait 15 or so seconds q. Start executor server (using run_executor_cpp) r. Executor starts up successfully s. Client application never retries to connect to executor server Should I be doing something in code to get this reconnect behavior working? Thanks, Robert Levas Systems Architect/Developer QED Financial Systems, Inc. 10,000 Sagemore Marlton, New Jersey 08053 USA tel 856.797.1200 fax 856.797.9719 email le...@QE... This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, which is the exclusive property of QED Financial Systems. |
From: Robert L. <le...@qe...> - 2009-11-11 20:57:50
|
If anyone is interested I submitted a bug report on this. I also attached two patch files that can be used to fix the issue. It appears to be fixed on my end with the patch in place. http://sourceforge.net/tracker/?func=detail <http://sourceforge.net/tracker/?func=detail&aid=2895449&group_id=37535&atid =1126912> &aid=2895449&group_id=37535&atid=1126912 Robert Levas Systems Architect/Developer QED Financial Systems, Inc. 10,000 Sagemore Marlton, New Jersey 08053 USA tel 856.797.1200 fax 856.797.9719 email le...@QE... This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, which is the exclusive property of QED Financial Systems. From: Robert Levas [mailto:le...@qe...] Sent: Tuesday, November 10, 2009 3:06 PM To: qui...@li... Subject: Re: [Quickfix-developers] Initiator Reconnect? Apparently this appears to be a bug in how the connection workflow is set up. What seems to happen is 1) When the Initiator is initialized, a connection for every configured Session is created and placed in the "disconnected" bin 2) Later, a SocketInitiator::onStart which invokes the Initiator::connect method 3) Each connection in the "disconnected" bin is tested and then passed to the SocketInitiator::doConnect method, which a. removes the connection from the "disconnected" bin and places it in the "pending" bin b. calls "connect" on the connection 4) If the connection connects all is well, however if a connection is not made by some timeout value, SocketInitiator::onTimeout is invoked, which a. Check to see a retry is allowed based on the last time it was tried b. Attempts to reconnect using the Initiator::connect method (as in item #2, above). The issue is that when the connect method is called again, the connection(s) that timed out were never moved from the "pending" bin to the "disconnected" bin and therefore a connection is never retried. This is because the connect method only works on connections in the "disconnected" bin - which makes sense. I will be summiting a bug report as soon as I can get an OpenID and log into the appropriate SourceForge bug tracker. Robert Levas Systems Architect/Developer QED Financial Systems, Inc. 10,000 Sagemore Marlton, New Jersey 08053 USA tel 856.797.1200 fax 856.797.9719 email le...@QE... This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, which is the exclusive property of QED Financial Systems. From: Robert Levas [mailto:le...@qe...] Sent: Monday, November 09, 2009 1:22 PM To: qui...@li... Subject: [Quickfix-developers] Initiator Reconnect? I am using the C++ library for QuickFIX version 1.12.4. I have a FIX::Application implementation that successfully connects to and logs into the executor example application (that comes with the library). Things seem to be working as expected however if the client starts up after the executor server or the executor server goes down and doesn't come up within 15 seconds, the client doesn't attempt to connect to it. I assume that should expect the client to retry connecting to the server but that is not happening and do I see anything relevant in the docs at http://www.quickfixengine.org/quickfix/doc/html/index.html To make things clear here are the two scenarios I quickly outlined: a. Client starts before Server b. Execute my application c. Wait a few seconds d. Client application logs "Connecting to localhost on port 5001" e. Start executor server (using run_executor_cpp) f. Executor starts up successfully g. Client application never retries to connect to executor server h. Server exists/crashes before Client i. Start executor server (using run_executor_cpp) j. Executor starts up successfully k. Execute my application l. Connection is made and login successful m. Kill executor server (manually for testing) n. Client application gets disconnect and logout event o. Client application attempts to reconnect and logs "Connecting to localhost on port 5001" p. Wait 15 or so seconds q. Start executor server (using run_executor_cpp) r. Executor starts up successfully s. Client application never retries to connect to executor server Should I be doing something in code to get this reconnect behavior working? Thanks, Robert Levas Systems Architect/Developer QED Financial Systems, Inc. 10,000 Sagemore Marlton, New Jersey 08053 USA tel 856.797.1200 fax 856.797.9719 email le...@QE... This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, which is the exclusive property of QED Financial Systems. |
From: Robert L. <le...@qe...> - 2009-11-20 13:55:01
|
Should I assume that no one uses the C++ library or is it that no one has the issue I am having? Robert Levas Systems Architect/Developer QED Financial Systems, Inc. 10,000 Sagemore Marlton, New Jersey 08053 USA tel 856.797.1200 fax 856.797.9719 email le...@QE... This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, which is the exclusive property of QED Financial Systems. From: Robert Levas [mailto:le...@qe...] Sent: Wednesday, November 11, 2009 3:58 PM To: qui...@li... Subject: Re: [Quickfix-developers] Initiator Reconnect? If anyone is interested I submitted a bug report on this. I also attached two patch files that can be used to fix the issue. It appears to be fixed on my end with the patch in place. http://sourceforge.net/tracker/?func=detail <http://sourceforge.net/tracker/?func=detail&aid=2895449&group_id=37535&atid =1126912> &aid=2895449&group_id=37535&atid=1126912 Robert Levas Systems Architect/Developer QED Financial Systems, Inc. 10,000 Sagemore Marlton, New Jersey 08053 USA tel 856.797.1200 fax 856.797.9719 email le...@QE... This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, which is the exclusive property of QED Financial Systems. From: Robert Levas [mailto:le...@qe...] Sent: Tuesday, November 10, 2009 3:06 PM To: qui...@li... Subject: Re: [Quickfix-developers] Initiator Reconnect? Apparently this appears to be a bug in how the connection workflow is set up. What seems to happen is 1) When the Initiator is initialized, a connection for every configured Session is created and placed in the "disconnected" bin 2) Later, a SocketInitiator::onStart which invokes the Initiator::connect method 3) Each connection in the "disconnected" bin is tested and then passed to the SocketInitiator::doConnect method, which a. removes the connection from the "disconnected" bin and places it in the "pending" bin b. calls "connect" on the connection 4) If the connection connects all is well, however if a connection is not made by some timeout value, SocketInitiator::onTimeout is invoked, which a. Check to see a retry is allowed based on the last time it was tried b. Attempts to reconnect using the Initiator::connect method (as in item #2, above). The issue is that when the connect method is called again, the connection(s) that timed out were never moved from the "pending" bin to the "disconnected" bin and therefore a connection is never retried. This is because the connect method only works on connections in the "disconnected" bin - which makes sense. I will be summiting a bug report as soon as I can get an OpenID and log into the appropriate SourceForge bug tracker. Robert Levas Systems Architect/Developer QED Financial Systems, Inc. 10,000 Sagemore Marlton, New Jersey 08053 USA tel 856.797.1200 fax 856.797.9719 email le...@QE... This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, which is the exclusive property of QED Financial Systems. From: Robert Levas [mailto:le...@qe...] Sent: Monday, November 09, 2009 1:22 PM To: qui...@li... Subject: [Quickfix-developers] Initiator Reconnect? I am using the C++ library for QuickFIX version 1.12.4. I have a FIX::Application implementation that successfully connects to and logs into the executor example application (that comes with the library). Things seem to be working as expected however if the client starts up after the executor server or the executor server goes down and doesn't come up within 15 seconds, the client doesn't attempt to connect to it. I assume that should expect the client to retry connecting to the server but that is not happening and do I see anything relevant in the docs at http://www.quickfixengine.org/quickfix/doc/html/index.html To make things clear here are the two scenarios I quickly outlined: a. Client starts before Server b. Execute my application c. Wait a few seconds d. Client application logs "Connecting to localhost on port 5001" e. Start executor server (using run_executor_cpp) f. Executor starts up successfully g. Client application never retries to connect to executor server h. Server exists/crashes before Client i. Start executor server (using run_executor_cpp) j. Executor starts up successfully k. Execute my application l. Connection is made and login successful m. Kill executor server (manually for testing) n. Client application gets disconnect and logout event o. Client application attempts to reconnect and logs "Connecting to localhost on port 5001" p. Wait 15 or so seconds q. Start executor server (using run_executor_cpp) r. Executor starts up successfully s. Client application never retries to connect to executor server Should I be doing something in code to get this reconnect behavior working? Thanks, Robert Levas Systems Architect/Developer QED Financial Systems, Inc. 10,000 Sagemore Marlton, New Jersey 08053 USA tel 856.797.1200 fax 856.797.9719 email le...@QE... This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, which is the exclusive property of QED Financial Systems. |
From: Grant B. <gbi...@co...> - 2009-11-20 14:44:06
|
Likely the latter. On Fri, Nov 20, 2009 at 7:39 AM, Robert Levas <le...@qe...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Should I assume that no one uses the C++ library or is it that no one has the issue I am having? > > Robert Levas > > Systems Architect/Developer > > QED Financial Systems, Inc. > > 10,000 Sagemore > Marlton, New Jersey 08053 USA > > tel 856.797.1200 > > fax 856.797.9719 > > email le...@QE... > > This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named > above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution > or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, > which is the exclusive property of QED Financial Systems. > > > > From: Robert Levas [mailto:le...@qe...] > Sent: Wednesday, November 11, 2009 3:58 PM > To: qui...@li... > Subject: Re: [Quickfix-developers] Initiator Reconnect? > > > > If anyone is interested I submitted a bug report on this. I also attached two patch files that can be used to fix the issue. It appears to be fixed on my end with the patch in place. > > > > http://sourceforge.net/tracker/?func=detail&aid=2895449&group_id=37535&atid=1126912 > > > > > > Robert Levas > > Systems Architect/Developer > > QED Financial Systems, Inc. > > 10,000 Sagemore > Marlton, New Jersey 08053 USA > > tel 856.797.1200 > > fax 856.797.9719 > > email le...@QE... > > This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named > above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution > or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, > which is the exclusive property of QED Financial Systems. > > > > From: Robert Levas [mailto:le...@qe...] > Sent: Tuesday, November 10, 2009 3:06 PM > To: qui...@li... > Subject: Re: [Quickfix-developers] Initiator Reconnect? > > > > Apparently this appears to be a bug in how the connection workflow is set up. What seems to happen is > > > > 1) When the Initiator is initialized, a connection for every configured Session is created and placed in the “disconnected” bin > > 2) Later, a SocketInitiator::onStart which invokes the Initiator::connect method > > 3) Each connection in the “disconnected” bin is tested and then passed to the SocketInitiator::doConnect method, which > > a. removes the connection from the “disconnected” bin and places it in the “pending” bin > > b. calls “connect” on the connection > > 4) If the connection connects all is well, however if a connection is not made by some timeout value, SocketInitiator::onTimeout is invoked, which > > a. Check to see a retry is allowed based on the last time it was tried > > b. Attempts to reconnect using the Initiator::connect method (as in item #2, above). > > > > The issue is that when the connect method is called again, the connection(s) that timed out were never moved from the “pending” bin to the “disconnected” bin and therefore a connection is never retried. This is because the connect method only works on connections in the “disconnected” bin – which makes sense. > > > > I will be summiting a bug report as soon as I can get an OpenID and log into the appropriate SourceForge bug tracker. > > Robert Levas > > Systems Architect/Developer > > QED Financial Systems, Inc. > > 10,000 Sagemore > Marlton, New Jersey 08053 USA > > tel 856.797.1200 > > fax 856.797.9719 > > email le...@QE... > > This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named > above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution > or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, > which is the exclusive property of QED Financial Systems. > > > > From: Robert Levas [mailto:le...@qe...] > Sent: Monday, November 09, 2009 1:22 PM > To: qui...@li... > Subject: [Quickfix-developers] Initiator Reconnect? > > > > I am using the C++ library for QuickFIX version 1.12.4. > > > > I have a FIX::Application implementation that successfully connects to and logs into the executor example application (that comes with the library). Things seem to be working as expected however if the client starts up after the executor server or the executor server goes down and doesn’t come up within 15 seconds, the client doesn’t attempt to connect to it. I assume that should expect the client to retry connecting to the server but that is not happening and do I see anything relevant in the docs at http://www.quickfixengine.org/quickfix/doc/html/index.html > > > > To make things clear here are the two scenarios I quickly outlined: > > a. Client starts before Server > > b. Execute my application > > c. Wait a few seconds > > d. Client application logs “Connecting to localhost on port 5001” > > e. Start executor server (using run_executor_cpp) > > f. Executor starts up successfully > > g. Client application never retries to connect to executor server > > h. Server exists/crashes before Client > > i. Start executor server (using run_executor_cpp) > > j. Executor starts up successfully > > k. Execute my application > > l. Connection is made and login successful > > m. Kill executor server (manually for testing) > > n. Client application gets disconnect and logout event > > o. Client application attempts to reconnect and logs “Connecting to localhost on port 5001” > > p. Wait 15 or so seconds > > q. Start executor server (using run_executor_cpp) > > r. Executor starts up successfully > > s. Client application never retries to connect to executor server > > > > Should I be doing something in code to get this reconnect behavior working? > > > > Thanks, > > Robert Levas > > Systems Architect/Developer > > QED Financial Systems, Inc. > > 10,000 Sagemore > Marlton, New Jersey 08053 USA > > tel 856.797.1200 > > fax 856.797.9719 > > email le...@QE... > > This electronic message is intended only for the receipt by, and the personal and confidential use of, the designated recipient(s) named > above. If you are not an intended recipient of this electronic message you are hereby notified that any review, dissemination, distribution > or copy of this message is strictly prohibited. QED Financial Systems, Inc. reserves all rights to the content of this electronic message, > which is the exclusive property of QED Financial Systems. > > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |