第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 プロトコルメッセージが交換されます。たとえば、送信インターセプタチェーンの最初のアプリケーションメッセージをインターセプトするときに、RMOutInterceptor
は CreateSequence
要求を送信し、CreateSequenceResponse
応答の受信後に元のアプリケーションメッセージを処理します。また、RM インターセプタはシーケンスヘッダをアプリケーションメッセージに追加し、宛先サイドで、メッセージからシーケンスヘッダを抽出します。
つまり、メッセージ交換の信頼性を高めるためにアプリケーションコードの変更を行う必要はありません。
設定により、シーケンス境界と信頼性の高い交換の他のアスペクトを制御できます。デフォルトでは、CXF はシーケンスのライフタイムを最大化しようとします。これにより、RM プロトコルメッセージによるオーバーヘッドが減少します。ただし、RM シーケンス終了ポリシーのソースを設定 (最大シーケンス長を設定) することにより、1 つのアプリケーションメッセージあたり 1 つの独立したシーケンスを使用することを強制できます。このことと信頼できる交換の他のアスペクト設定の詳細については、7章WS-Reliable Messaging の使用 を参照してください。