[Quickfix-developers] Resend Request not Fulfilled, QuickFIX 1.10.2
Brought to you by:
orenmnero
From: Jim W. <wi...@wi...> - 2007-02-22 01:13:22
|
This morning we had an issue with our FIX server built on QuickFIX 1.10.2. We had a NewOrderSingle go out at about 9:32 am, which was immediately followed by a re-logon to the counterparty's system -- but the NewOrdSingle message was never resent. This seemed to me to clearly be a failure in the session management. Here is the relevant output from the event log: 20070221-13:37:33 : Created session 20070221-13:37:33 : Connecting to 192.168.1.5 on port 4000 20070221-13:37:33 : Connection succeeded 20070221-13:37:33 : Initiated logon request 20070221-13:37:34 : Received logon response 20070221-14:31:58 : Socket Error: Connection reset by peer. 20070221-14:31:58 : Disconnecting 20070221-14:31:59 : Connecting to 192.168.1.5 on port 4000 20070221-14:31:59 : Connection succeeded 20070221-14:31:59 : Initiated logon request 20070221-14:32:00 : Received logon response 20070221-14:32:00 : Received ResendRequest FROM: 110 TO: 111 20070221-14:32:00 : Sent SequenceReset TO: 112 Here is the relevant section from the outgoing packet log: 8=FIX.4.2^A9=55^A35=0^A34=108^A49=mXXXXX3^A52=20070221-14:31:03.013^A56=IB^A10=106^A 8=FIX.4.2^A9=55^A35=0^A34=109^A49=mXXXXX3^A52=20070221-14:31:33.014^A56=IB^A10=111^A 8=FIX.4.2^A9=226^A35=D^A34=110^A49=mXXXXX3^A52=20070221-14:31:58.117^A56=IB^A1=UXXXXXX0^A11=19011AGT21JZI001^A15=USD^A21=2^A38=25^A40=2^A44=0.71^A54=2^A55=QQQ^A59=0^A60=20070221-14:31:58^A77=C^A100=BEST^A167=OPT^A200=200703^A201=0^A202=45^A204=0^A231=100^A440=UXXXXXX0^A10=216^A 8=FIX.4.2^A9=67^A35=A^A34=111^A49=mXXXXX3^A52=20070221-14:31:59.236^A56=IB^A98=0^A108=30^A10=163^A 8=FIX.4.2^A9=95^A35=4^A34=110^A43=Y^A49=mXXXXX3^A52=20070221-14:32:00.716^A56=IB^A122=20070221-14:32:00^A36=112^A123=Y^A10=005^A 8=FIX.4.2^A9=55^A35=0^A34=112^A49=mXXXXX3^A52=20070221-14:32:30.016^A56=IB^A10=105^A 8=FIX.4.2^A9=55^A35=0^A34=113^A49=mXXXXX3^A52=20070221-14:33:00.017^A56=IB^A10=105^A Here is the relevant section from the incoming packet log: 8=FIX.4.2^A9=0059^A35=0^A34=000108^A43=N^A52=20070221-14:31:05^A49=IB^A56=mXXXXX3^A10=145^A 8=FIX.4.2^A9=0059^A35=0^A34=000109^A43=N^A52=20070221-14:31:35^A49=IB^A56=mXXXXX3^A10=149^A 8=FIX.4.2^A9=000071^A35=A^A34=000110^A43=N^A52=20070221-14:32:00^A49=IB^A56=mXXXXX3^A98=0^A108=30^A10=010^A 8=FIX.4.2^A9=0072^A35=2^A34=000111^A43=N^A52=20070221-14:32:00^A49=IB^A56=mXXXXX3^A7=110^A16=111^A10=195^A 8=FIX.4.2^A9=0059^A35=0^A34=000112^A43=N^A52=20070221-14:32:30^A49=IB^A56=mXXXXX3^A10=139^A 8=FIX.4.2^A9=0059^A35=0^A34=000113^A43=N^A52=20070221-14:33:00^A49=IB^A56=mXXXXX3^A10=138^A The connection is to InteractiveBrokers using their IBGateway Java client on one of our internal machines. Our FIX server then connects to this machine and exchanges messages through the gateway. The system has been very stable for months. As you can see, the systems were happily exchanging heartbeats right up to the moment the order went out. The connection appears to have broken right at that moment and been forced to log back on. The counterparty appears to have sent a resend request for messages 110 to 111, but QuickFIX sent a sequence reset instead; it never sent the missed messages. What's up? Is this a bug? If so, has it been fixed in more recent versions of QuickFIX? Clearly handling of resend requests is part of session management -- I'm assuming the messages should have been resent as the default behavior. Does my application actually have to explicitly deal with this? thanks, Jim |