271.7. InOut メッセージエクスチェンジパターンの使用


Camel 2.8+

FIX プロトコルはイベント駆動型で非同期ですが、要求と応答のメッセージエクスチェンジを表す特定のメッセージのペアがあります。InOut エクスチェンジパターンを使用するには、リクエストに対する単一のリクエストメッセージと単一のレスポンスメッセージが必要です。例には、OrderStatusRequest メッセージと UserRequest が含まれます。

271.7.1. コンシューマー向けの InOut Exchange の実装

QuickFIX/J エンドポイント URI に "exchangePattern=InOut" を追加します。以下の例の MessageOrderStatusService は、同期サービスメソッドを持つ Bean です。このメソッドは、リクエストに対するレスポンス (この場合は ExecutionReport) を返し、それがリクエスターセッションに送り返されます。

    from("quickfix:examples/inprocess.cfg?sessionID=FIX.4.2:MARKET->TRADER&exchangePattern=InOut")
        .filter(header(QuickfixjEndpoint.MESSAGE_TYPE_KEY).isEqualTo(MsgType.ORDER_STATUS_REQUEST))
        .bean(new MarketOrderStatusService());

271.7.2. プロデューサーのための InOut Exchange の実装

プロデューサーの場合、メッセージの送信は、レスポンスが受信されるかタイムアウトが発生するまでブロックされます。FIX でレスポンスメッセージを相互に関連付ける標準的な方法はありません。したがって、InOut エクスチェンジのタイプごとに相関基準を定義する必要があります。相関条件とタイムアウトは、Exchange プロパティーを使用して指定できます。

Expand
説明キー文字列キー定数デフォルト

相関基準

"CorrelationCriteria"

QuickfixjProducer.CORRELATION_CRITERIA_KEY

なし

ミリ秒単位の相関タイムアウト

"CorrelationTimeout"

QuickfixjProducer.CORRELATION_TIMEOUT_KEY

1000

相関基準は、MessagePredicate オブジェクトで定義されます。次の例では、トランザクションタイプが STATUS で、注文 ID がリクエストと一致する指定されたセッションからの FIX ExecutionReport を処理します。セッション ID は requestor 用である必要があります。sender および target CompID フィールドは、返信を探すときに逆になります。

exchange.setProperty(QuickfixjProducer.CORRELATION_CRITERIA_KEY,
    new MessagePredicate(new SessionID(sessionID), MsgType.EXECUTION_REPORT)
        .withField(ExecTransType.FIELD, Integer.toString(ExecTransType.STATUS))
        .withField(OrderID.FIELD, request.getString(OrderID.FIELD)));

271.7.3. 例

ソースコードには、コンシューマーとプロデューサーの InOut エクスチェンジを示す RequestReplyExample という例が含まれています。この例では、注文状況リクエストを受け入れる単純な HTTP サーバーエンドポイントを作成します。HTTP リクエストは FIX OrderStatusRequestMessage に変換され、相関基準で拡張されてから、quickfix エンドポイントにルーティングされます。次に、レスポンスは JSON 形式の文字列に変換され、HTTP サーバーエンドポイントに返されて、Web レスポンスとして提供されます。

Spring 設定は、Camel 2.9 以降で変更されました。例は、以下を参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る