QuickFixサイト(1.13.3)の最新のバイナリでQuickFix用の.NETラッパーを使用しています。
セッションはアクセプターとして構成され、毎日06:10:00から15:35:00までスケジュールされます。
問題は、相手が午前中に最初のログオンを試みたときに、エンジンが不要なLogout
メッセージを送信し、最終日からシーケンス番号をリセットしないことです。
Session
メソッドにプロパティのカスタムログを追加しました。toApp
これは、相手が最初のLogon
メッセージを送信したときにログに記録されます(toApp時間はUTC + 1です)。
20121128-06:46:14.546 : 8=FIX.4.2|9=63|35=A|49=OTHER_PARTY|56=US|34=1|52=20121128-06:46:14|98=0|108=60|141=Y|10=046
2012-11-28 07:46:14,546 [3] DEBUG FixAcceptor.FIX.4.2-US-OTHER_PARTY [(null)] <(null)> - Session 'FIX.4.2:US->OTHER_PARTY', isLoggedOn: False, isSessionTime: True, sentLogon: False, sentLogout: False, receivedLogon: False
20121128-06:46:14.546 : 8=FIX.4.2|9=50|35=5|34=79|49=US|52=20121128-06:46:14.546|56=OTHER_PARTY|10=225|
Logout
このメッセージが送信される理由がわかりません。前日のセッションは、両当事者からの通常のログアウトで終了しました。相手が別のLogon
メッセージを送信すると、すべてがうまくいき、通常のLogon
応答が送信されます。
20121128-06:46:24.765 : 8=FIX.4.2|9=63|35=A|49=OTHER_PARTY|56=US|34=2|52=20121128-06:46:24|98=0|108=60|141=Y|10=048
20121128-06:46:24.780 : 8=FIX.4.2|9=67|35=A|34=1|49=US|52=20121128-06:46:24.780|56=OTHER_PARTY|98=0|108=60|141=Y|10=000
なぜこれが起こっているのか、何か考えはありますか?
編集 今日もログを確認しましたが、昨日のログアウト手順は適切に実行されましたが、シーケンス番号がリセットされず、今日の朝にログアウトメッセージが再度送信されました。
20121128-15:07:22.248 : 8=FIX.4.2|9=54|35=5|49=OTHER_PARTY|56=US|34=262|52=20121128-15:07:22|58=END|10=192|
20121128-15:07:22.248 : 8=FIX.4.2|9=51|35=5|34=262|49=US|52=20121128-15:07:22.248|56=OTHER_PARTY|10=007|
20121129-06:23:25.326 : 8=FIX.4.2|9=63|35=A|49=OTHER_PARTY|56=US|34=1|52=20121129-06:23:25|98=0|108=60|141=Y|10=044|
20121129-06:23:25.341 : 8=FIX.4.2|9=51|35=5|34=263|49=US|52=20121129-06:23:25.341|56=OTHER_PARTY|10=004|
20121129-06:23:35.544 : 8=FIX.4.2|9=63|35=A|49=OTHER_PARTY|56=US|34=2|52=20121129-06:23:35|98=0|108=60|141=Y|10=046|
20121129-06:23:35.560 : 8=FIX.4.2|9=67|35=A|34=1|49=US|52=20121129-06:23:35.560|56=OTHER_PARTY|98=0|108=60|141=Y|10=250|
したがって、間違ったシーケンス番号がログアウトメッセージが送信される理由である場合、QuickFixがシーケンス番号をリセットしないのはなぜかという疑問が残ります。チェックしたところ、セッション構成中にStartDay / EndDay構成パラメーターが設定されておらず、StartTime/EndTimeのみが設定されています。他に確認すべきことはありますか?