Re: [Quickfix-developers] Recovering from a crash
Brought to you by:
orenmnero
From: Oren M. <or...@qu...> - 2004-05-06 23:18:27
|
Patrick, In the toApp call you can choose to not send a message by throwing a=20 DoNotSend exception. In the case of a resend, the message that would=20 have gone out is replaced with a gap fill. If you do not send=20 consecutive messages, they will all be replaced with a single gap fill=20= to the appropriate sequence number (instead of sending many individual=20= gap fills). You can always check to see if a message is being resent=20 by checking if the PossDup flag is set to 'Y'. Many systems choose not=20= to resend such requests for market dependent messages like orders, but=20= will allow other requests like cancels to go through. There is not configuration setting since with the DoNotSend=20 functionality, your app has total control and can determine your own=20 simple or complex rules for when you want to resend versus gap fill. QuickFIX will attempt to automatically recover from sequence number=20 mismatches on logon (as the spec requires). There shouldn't be an=20 infinite loop, although do not a bug fix was recently applied that did=20= correct such a scenario under rare circumstances. This has been=20 confirmed fixed in the CVS version. The FIX specification also=20 recommends that you not send any application level messages until you=20 can confirm that your sequence numbers are synchronized. You can=20 confirm this by sending a test request with a unique string, and=20 holding off on sending any new application level messages until you=20 receive the heartbeat response with your string. On May 6, 2004, at 4:02 PM, Patrick Flannery wrote: > Developers, > > =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 We are using a third party component = to connect to an=20 > exchange; we are then using quick fix to communicate with this third=20= > party component.=A0 When the third party component crashes = unexpectedly=20 > we would like to restore state but not send any queued requests.=A0 = Does=20 > quick fix automatically fill the gap in sequence numbers when it tries=20= > to logon again?=A0 Does quick fix ever go into an infinite loop trying=20= > to logon again?=A0 What should the configuration settings be so that=20= > requests are never sent after a crash?=A0 Any suggestions you have for=20= > dealing with the unexpected failure of a third party component would=20= > be much appreciated. > > Thank you in advance. > > Patrick > > This email message is intended only for the addressee(s) and contains=20= > information that may be confidential and/or > copyright.=A0 If you are not the intended recipient please notify the=20= > sender by reply email and immediately delete > this email. Use, disclosure or reproduction of this email by anyone=20 > other than the intended recipient(s) is strictly > prohibited. No representation is made that this email or any=20 > attachments are free of viruses. Virus scanning is > recommended and is the responsibility of the recipient. > > Thank you. > > For more information on CTC, LLC please visit our website at=20 > http://www.chicagotrading.com. > > > =A0 |