[Quickfix-developers] manually controlling last-accepted sequence number
Brought to you by:
orenmnero
From: Rick L. <ric...@gm...> - 2009-05-27 13:59:06
|
Greetings, Given the architecture of our trading platform, and because there is a separate thread that handles SQL Server database backup (audit trail, order management, etc.) it is possible for QuickFix to receive a message from our counterparty, hand the message off to my application and then log the fact that sequence number X was received and processed. However, before I apply the business logic of this particular message (which includes updating the database), it is possible for the application to close ungracefully. When I log back in to the counterparty, QuickFix will not ask for a resend for the messages that we received but didn't "process" at the application level. For instance: 1) QuickFix receives/delivers msg #10 2) QuickFix receives/delivers msg #11 3) QuickFix receives/delivers msg #12 4) I process/store msg #10 5) QuickFix receives/delivers msg #13 6) I process/store msg #11 7) CRASH When I log in again: 1) QuickFix receives msg #25 2) QuickFix issues resend request for msgs #14-24 Here, QuickFix thought we already got messages 12 and 13 (which technically we did, but I was unable to apply their business logic to the database). What I'm wondering is if there is any way I can manually update the QuickFix engine each time I "process" (persist) a message, telling it that the message was completely processed, so it does not need to request it in the event of a message sequence gap. Thanks, Rick |