Menu Close
21.2. WS-RM インターセプター
概要
Apache CXF では、WS-RM 機能はインターセプターとして実装されます。Apache CXF ランタイムは、インターセプターを使用して送受信されている未処理のメッセージをインターセプトして処理します。トランスポートがメッセージを受信すると、メッセージオブジェクトを作成し、インターセプターチェーンを介してそのメッセージを送信します。アプリケーションのインターセプターチェーンに WS-RM インターセプターが含まれる場合、アプリケーションは信頼性の高いメッセージングセッションに参加できます。WS-RM インターセプターは、メッセージチャンクの収集および集約を処理します。また、確認応答および再送信のロジックもすべて処理します。
Apache CXF WS-RM インターセプター
Apache CXF WS-RM の実装は、表21.1「Apache CXF WS-ReliableMessaging インターセプター」で説明するように、4 つのインターセプターで構成されます。
表21.1 Apache CXF WS-ReliableMessaging インターセプター
インターセプター | 説明 |
---|---|
| 送信メッセージに対する信頼性の保証を提供する論理的な側面に対応します。
また、アプリケーションメッセージのシーケンスプロパティー (ID とメッセージ番号) を集約します。 |
|
アプリケーションメッセージに付随する RMプロトコルメッセージおよび |
| 永続ストレージ用に受信メッセージをキャッシュします。 |
| メッセージが順序どおりにアプリケーションに配信されるようにします。 |
| 信頼性プロパティーを SOAP ヘッダーとしてエンコードおよびデコードします。 |
| 今後の再送信のために、アプリケーションメッセージのコピーを作成します。 |
WS-RM の有効化
インターセプターチェーンに WS-RM インターセプターが存在すると、必要に応じて WS-RM プロトコルメッセージが変換されるようになります。たとえば、アウトバウンドインターセプターチェーンで最初のアプリケーションメッセージをインターセプトすると、RMOutInterceptor
は CreateSequence
リクエストを送信し、CreateSequenceResponse
応答を受信するまで元のアプリケーションメッセージを処理するのを待ちます。さらに、WS-RM インターセプターはシーケンスヘッダーをアプリケーションメッセージに追加し、宛先側でそれをメッセージから抽出します。メッセージの交換を信頼できるものにするために、アプリケーションコードを変更する必要はありません。
WS-RM を有効にする方法の詳細は、「WS-RM の有効化」を参照してください。
WS-RM 属性の設定
設定を通じて、信頼性の高い変換のシーケンス境界やその他の側面を制御します。たとえば、デフォルトでは Apache CXF はシーケンスのライフタイムを最大化することを試みます。そのため、アウトオブバンドの WS-RM プロトコルメッセージにより発生するオーバーヘッドを削減します。アプリケーションメッセージごとに個別のシーケンスを使用するようにするには、WS-RM ソースのシーケンス終了ポリシーを設定します (最大シーケンス長を 1
に設定します)。
WS-RM 動作の設定に関する詳細は、「WS-RM の設定」を参照してください。