|
From: Edde <edd...@gm...> - 2006-07-19 09:08:50
|
Hi Guys, I've been using QuickFIX/J for a couple of weeks now and for the most part I'm very happy with the result. Thanks to Steve and the rest for finally making QuickFIX a pure Java application! However, yesterday when I had to restart our application I had some issues when QuickFIX didn't respond correctly to a ResendRequest from our counterparty. Normally this is what happens when I have to restart during the day: XXX =3D Me YYY =3D Counterparty 8=3DFIX.4.2=019=3D53=0135=3DA=0134=3D7200=0149=3DXXX=0152=3D20060718-08:07:= 30.231=0156=3DYYY=0110=3D108=01 8=3DFIX.4.2=019=3D66=0135=3DA=0134=3D7201=0149=3DXXX=0152=3D20060718-08:07:= 30.261=0156=3DYYY=0198=3D0=01108=3D180=0110=3D195=01 8=3DFIX.4.2=019=3D66=0135=3DA=0134=3D14225=0149=3DYYY=0152=3D20060718-08:07= :29.596=0156=3DXXX=0198=3D0=01108=3D30=0110=3D212=01 8=3DFIX.4.2=019=3D62=0135=3D2=0134=3D7202=0149=3DXXX=0152=3D20060718-08:07:= 32.134=0156=3DYYY=017=3D1=0116=3D0=0110=3D222=01 8=3DFIX.4.2=019=3D75=0135=3D1=0134=3D7203=0149=3DXXX=0152=3D20060718-08:07:= 32.134=0156=3DYYY=01112=3DResendHasFinished=0110=3D224=01 ResendRequest from YYY: 8=3DFIX.4.2=019=3D66=0135=3D2=0134=3D14226=0149=3DYYY=0152=3D20060718-08:07= :29.600=0156=3DXXX=017=3D7150=0116=3D0=0110=3D182=01 Correct respons from QuickFIX/J: 8=3DFIX.4.2=019=3D94=0135=3D4=0134=3D7150=0143=3DY=0149=3DXXX=0152=3D200607= 18-08:07:32.184=0156=3DYYY=01122=3D20060718-08:07:32=0136=3D7204=01123=3DY= =0110=3D080=01 8=3DFIX.4.2=019=3D75=0135=3D1=0134=3D7204=0149=3DXXX=0152=3D20060718-08:07:= 38.143=0156=3DYYY=01112=3DTest OS, 10:07:38=0110=3D149=01 8=3DFIX.4.2=019=3D75=0135=3D1=0134=3D7205=0149=3DXXX=0152=3D20060718-08:07:= 41.147=0156=3DYYY=01112=3DTest OS, 10:07:41=0110=3D142=01 Yesterday's scenario: 8=3DFIX.4.2=019=3D67=0135=3DA=0134=3D30499=0149=3DXXX=0152=3D20060718-11:29= :33.504=0156=3DYYY=0198=3D0=01108=3D180=0110=3D004=01 8=3DFIX.4.2=019=3D67=0135=3DA=0134=3D61254=0149=3DYYY=0152=3D20060718-11:29= :34.083=0156=3DXXX=0198=3D0=01108=3D180=0110=3D000=01 8=3DFIX.4.2=019=3D63=0135=3D2=0134=3D30500=0149=3DXXX=0152=3D20060718-11:29= :36.728=0156=3DYYY=017=3D1=0116=3D0=0110=3D023=01 8=3DFIX.4.2=019=3D76=0135=3D1=0134=3D30501=0149=3DXXX=0152=3D20060718-11:29= :36.738=0156=3DYYY=01112=3DResendHasFinished=0110=3D026=01 ResendRequest from YYY: 8=3DFIX.4.2=019=3D67=0135=3D2=0134=3D61255=0149=3DYYY=0152=3D20060718-11:29= :34.087=0156=3DXXX=017=3D30498=0116=3D0=0110=3D249=01 The correct Sequence Reset message is missing from QuickFIX/J... 8=3DFIX.4.2=019=3D76=0135=3D1=0134=3D30502=0149=3DXXX=0152=3D20060718-11:29= :42.757=0156=3DYYY=01112=3DTest OS, 13:29:42=0110=3D201=01 8=3DFIX.4.2=019=3D76=0135=3D1=0134=3D30503=0149=3DXXX=0152=3D20060718-11:29= :45.761=0156=3DYYY=01112=3DTest OS, 13:29:45=0110=3D203=01 When checking the Event log I found the following: 20060718-11:29:31.220: Session FIX.4.2:XXX->YYY schedule is daily, 00:00:00 UTC - 00:00:00 UTC 20060718-11:29:31.241: Created session: FIX.4.2:XXX->YYY 20060718-11:29:33.554: Initiated logon request 20060718-11:29:36.728: Received logon response 20060718-11:29:36.728: MsgSeqNum too high, expecting 1 but received 61254 20060718-11:29:36.738: Sent ResendRequest FROM: 1 TO: 0 20060718-11:29:36.788: Received ResendRequest FROM: 30498 TO: 0 20060718-11:29:36.819: Error during message processing java.lang.ClassCastException: quickfix.Message =09at quickfix.MessageCracker.crack(MessageCracker.java:48) =09at trader.quickfix.QuickFIXApplication.toApp(QuickFIXApplication.java:37= 3) =09at quickfix.Session.resend(Session.java:757) =09at quickfix.Session.nextResendRequest(Session.java:698) =09at quickfix.Session.next(Session.java:585) =09at quickfix.mina.ThreadPerSessionEventHandlingStrategy$MessageDispatchin= gThread.run(ThreadPerSessionEventHandlingStrategy.java:75) I'm sure that this ClassCastException is the problem but I have no idea what might be the cause. Anyone experienced the same thing? I'll check if I can recreate the problem and add some debug code to check what object type is passed when problem occurs. Thanks, /Eddie |