WebLogic Web サービス プログラマーズ ガイド
![]() |
![]() |
![]() |
![]() |
以下の節では、WS-Policy ファイルの Web サービスの信頼性のあるメッセージング ポリシー アサーションに関するリファレンス情報を示します。
WS-Policy ファイルを使用すると、送り先エンドポイントで実行されている WebLogic Web サービスの信頼性のあるメッセージング機能をコンフィグレーションできます。Web サービスに関連付けられている WS-Policy ファイルの名前を指定するには、その Web サービスを実装している JWS ファイルで @Policy
JWS アノテーションを使用します。
WS-Policy ファイルは、WS-Policy 仕様に準拠する XML ファイルです。WS-Policy ファイルのルート要素は、常に <wsp:Policy>
です。Web サービスの信頼性のあるメッセージングをコンフィグレーションするには、まず <wsrm:RMAssertion>
子要素を追加する必要があります。これは主に、信頼性のあるメッセージングのすべてのポリシー アサーションをグループ化するための操作です。次に、目的の Web サービスの信頼性のあるメッセージングの種類を子要素として <wsrm:RMAssertion>
に追加します。これらのアサーションはすべて WS-PolicyAssertions 仕様に準拠しています。
WebLogic Server には、標準的な信頼性のあるメッセージング アサーションを含む 2 つの WS-Policy ファイル (DefaultReliability.xml
と LongRunningReliability.xml
) があります。独自の WS-Policy ファイルを作成しない場合は、このファイルのいずれかを使用できます。この 2 つのファイルの詳細については、「Web サービスの信頼性のあるメッセージングをコンフィグレーションするための WS-Policy ファイルの使用」を参照してください。
信頼性のある WebLogic Web サービスの作成の詳細については、「Web サービスの信頼性のあるメッセージングの使用」を参照してください。
以下の図では、WS-Policy ファイルの Web サービスの信頼性のあるメッセージング ポリシー アサーションの要素の階層を示します。
図 13-1 Web サービスの信頼性のあるメッセージング ポリシー アサーションの要素階層
次の例では、WebLogic Web サービスの信頼性のあるメッセージングのコンフィグレーションに使用する簡単な WS-Policy ファイルを示します。
<?xml version="1.0"?>
<wsp:Policy wsp:Name="ReliableHelloWorldPolicy"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm">
<wsrm:RMAssertion>
<wsrm:InactivityTimeout
Milliseconds="600000" />
<wsrm:AcknowledgementInterval
Milliseconds="2000" />
<wsrm:BaseRetransmissionInterval
Milliseconds="500" />
<wsrm:ExponentialBackoff />
</wsrm:RMAssertion>
</wsp:Policy>
信頼性のある Web サービスの有効期限が切れ、これ以上のシーケンスを受け付けなくなるまでの時間を指定します。信頼性のある Web サービスのこのインスタンスを呼び出しているクライアント アプリケーションが、有効期限後にオペレーションを呼び出そうとすると、エラーが表示されます。
WS-Policy ファイルで指定されていない場合、デフォルトでは、Web サービスを無期限で利用できます。
|
Web サービスに対して、以下のいずれかの配信保証レベル (Quality Of Service : 配信品質) を指定します。
WS-Policy ファイルで指定されていない場合、この要素のデフォルト値は ExactlyOnce InOrder
です。
|
送り先エンドポイントがスタンドアロンの確認応答を送信しなければならない最大間隔 (ミリ秒単位) を指定します。
送り先エンドポイントは、ソース エンドポイントからメッセージを受信した直後に、返されたメッセージに対する確認応答を送信できます。また、スタンドアロンの確認応答で個別に確認応答を送信することもできます。返されたメッセージに対して確認応答を送信できない場合、送り先エンドポイントは、スタンドアロンの確認応答を送信するまで、確認応答の間隔に設定した時間範囲内で待機することがあります。確認されたメッセージがない場合、送り先エンドポイントは確認応答を送信しない可能性があります。
このアサーションは、メッセージまたは確認応答の形式を送信時の状態から変更しません。これは、ソース エンドポイントが適切に調整できるように確認応答のタイミングを通信するためです。
この要素は省略可能です。この要素を指定しなかった場合、デフォルト値は、送り先エンドポイント用にコンフィグレーションされたストア アンド フォワード (SAF) エージェントによって設定されます。
ソース エンドポイントがメッセージを送信してから再送信を行うまでの間隔 (ミリ秒単位) を指定します。
ソース エンドポイントが、この要素で指定した間隔内で所定のメッセージの確認応答を受信しなかった場合、ソース エンドポイントはメッセージを再送信します。ソース エンドポイントは、メッセージのシーケンスの有効期間内の任意の時点で、この再送信間隔を変更することがあります。このアサーションは、メッセージまたは確認応答の形式を送信時の状態から変更せず、その送信のタイミングのみを指定します。
この要素を <wsrm:ExponentialBackoff>
要素と組み合わせて使用すると、<wsrm:ExponentialBackoff>
で指定したアルゴリズムを使用して再送信間隔を調整するように指定できます。
この要素は省略可能です。この要素を指定しなかった場合、デフォルト値は、ソース エンドポイント用にコンフィグレーションされたストア アンド フォワード (SAF) エージェントによって設定されます。Administration Console を使用して SAF エージェントをコンフィグレーションする場合、この値には「Retry Delay Base」というラベルが付けられます。
再送信の間隔が、指数関数的なバックオフ アルゴリズムを使用して調整されることを指定します。
この要素は、<wsrm:BaseRetransmissionInterval>
と一緒に使用します。送り先エンドポイントが、<wsrm:BaseRetransmissionInterval>
で指定した時間内でメッセージのシーケンスを確認応答しなかった場合、メッセージが引き続き確認されなければ、連続再送信のタイミングに対して、ソース エンドポイントは指数関数的なバックオフ アルゴリズムを使用します。
指数関数的なバックオフ アルゴリズムは、連続再送信の間隔が、基本の再送信間隔を基に指数的に増えるように指定します。たとえば、基本の再送信間隔が 2 秒で、指数関数的なバックオフ要素が WS-Policy ファイルで設定されている場合、連続再送信の間隔は、メッセージが確認されなければ、2、4、8、16、32 秒というように増えていきます。
この要素は省略可能です。設定しなかった場合、連続再送信の間隔は指数的に増えず、同じ値が維持されます。
メッセージのシーケンスが非アクティブになっている期間 (ミリ秒) を指定します。メッセージのシーケンスは、ユニークなシーケンス番号で識別されるメッセージのセットとして定義され、これに対して特定の配信保証が適用されます。通常、シーケンスは単一のソース エンドポイントから生じます。この要素で指定した期間中に、送り先エンドポイントがソース エンドポイントからのメッセージを受け取っていない場合、送り先エンドポイントは、処理が行われずシーケンスは終了したものと見なす可能性があります。これは、ソース エンドポイントについても同様です。
この要素は省略可能です。WS-Policy ファイルで設定しなかった場合、シーケンスは、非アクティブな状態によってタイムアウトすることはありません。
メイン Web サービスの信頼性のあるメッセージング アサーションで、単一の要素にある他のすべてのアサーションをグループ化します。
WS-Policy ファイルでこのアサーションを指定すると、対応する Web サービスが、信頼性を確保した状態で呼び出されます。
![]() ![]() |
![]() |
![]() |