QuickFIX / Jのメッセージング契約とは何ですか?注文配送は保証されますか?

Aug 18 2020

QuickFIX / Jを使い始めたばかりです。彼らのドキュメントを読んで私が混乱していることの1つは、FIXプロトコルのQuickFIX実装によって保証されるメッセージング契約は正確には何であるかということです。

特に、FIXにはシーケンス番号ベースのメカニズムが組み込まれており、実装がこのメカニズムを利用して、メッセージの順序が正しくない、欠落している、または重複していることを処理できます。しかし、QuickFIX / Jにはすでに機能が組み込まれていますか?QuickFIX / Jを使用して修正エンジンと通信するアプリケーションとして、次のことを想定できますか。

  1. QuickFIX / Jからアプリに配信されるメッセージは常に順番に並んでいます。

  2. 欠落しているメッセージはありません(QuickFIX / Jが自動的に再要求を処理します)

  3. 重複するメッセージはありません(QuickFIX / Jは、これまでに受信したシーケンス番号を確認し、重複の可能性を排除できます)

  4. リモート修正エンジンがクラッシュした場合、エンジンが戻ってきたときに、最後の既知のシーケンス番号に自動的に再接続します

  5. アプリがクラッシュした場合、再起動すると、以前の既知のシーケンス番号からセッションを自動的に再開できますか?(たとえば、すぐに使用できるシーケンス番号の永続化メカニズムはありますか?)

回答

1 ChristophJohn Aug 18 2020 at 18:15

QuickFIX / JはFIXセッションプロトコルを実装しているため、すべてのセッションレベルのもの(接続、シーケンス番号など)を処理します。

  1. はい。ただし、重複する可能性があります。3を参照してください。
  2. はい。
  3. いいえ、実際には、QFJは重複の可能性をアプリに転送します。これは、それらを処理したい場合があるためです。必要に応じて、に基づいて自分でフィルタリングする必要があります43/PossDupFlag
  4. はい。
  5. はい。QFJのような箱の永続性メカニズムのいくつかのアウトを持っていますFileStoreJdbcStoreMemoryStoreStore必要に応じて、独自に実装することもできます。

QFJアプリケーションをまだ見つけていない場合に備えて、作成する方法に関するリンクは次のとおりです。 https://github.com/quickfix-j/quickfixj#creating-a-quickfixj-application