第6章 WS-Reliable Messaging

CXF は 2005 年 2 月版の Web Service Reliable Messaging Protocol 仕様をサポートします。CXF の他のほとんどの機能と同様に、これはインターセプタベースです。WS-Reliable Messaging 実装は、合計で 4 つのインターセプタから構成されます。これらは以下のとおりです。
org.apache.cxf.ws.rm.RMOutInterceptor
役割:
  • CreateSequence 要求を送信します。
  • CreateSequenceResponse 応答を待機します。
  • アプリケーションメッセージのシーケンスプロパティ (id およびメッセージ番号) を収集します。
org.apache.cxf.ws.rm.RMInInterceptor
RM プロトコルメッセージと、アプリケーションメッセージでピギーバックされた SequenceAcknowledgments をインターセプトおよび処理します。
org.apache.cxf.ws.rm.soap.RMSoapInterceptor
RM ヘッダのエンコードとデコード
org.apache.cxf.ws.rm.soap.RetransmissionInterceptor
将来の再送信のためにアプリケーションメッセージのコピーを作成します。
インターセプタベースの QoS

各インターセプタチェーンに RM インターセプタがあると、必要な場合に RM プロトコルメッセージが交換されます。たとえば、送信インターセプタチェーンの最初のアプリケーションメッセージをインターセプトするときに、RMOutInterceptorCreateSequence 要求を送信し、CreateSequenceResponse 応答の受信後に元のアプリケーションメッセージを処理します。また、RM インターセプタはシーケンスヘッダをアプリケーションメッセージに追加し、宛先サイドで、メッセージからシーケンスヘッダを抽出します。

つまり、メッセージ交換の信頼性を高めるためにアプリケーションコードの変更を行う必要はありません。
設定により、シーケンス境界と信頼性の高い交換の他のアスペクトを制御できます。デフォルトでは、CXF はシーケンスのライフタイムを最大化しようとします。これにより、RM プロトコルメッセージによるオーバーヘッドが減少します。ただし、RM シーケンス終了ポリシーのソースを設定 (最大シーケンス長を設定) することにより、1 つのアプリケーションメッセージあたり 1 つの独立したシーケンスを使用することを強制できます。このことと信頼できる交換の他のアスペクト設定の詳細については、7章WS-Reliable Messaging の使用 を参照してください。