Oracle® Fusion Middleware Oracle WebLogic Server Web サービス リファレンス 11g リリース 1 (10.3.1) B55558-01 |
|
![]() 戻る |
![]() 次へ |
以下の節では、WS-Policy ファイルの Web サービスの信頼性のあるメッセージング ポリシー アサーションに関するリファレンス情報を示します。
Web サービスの信頼性のあるメッセージングのアサーションを含む WS-Policy ファイルの例 - バージョン 1.0 (非推奨)
注意 : この章の内容は、JAX-RPC Web サービスのみに適用され、JAX-WS Web サービスには適用されません。 |
WS-Policy ファイルを使用すると、送り先エンドポイントで実行されている WebLogic Web サービスの信頼性のあるメッセージング機能をコンフィグレーションできます。Web サービスに関連付けられている WS-Policy ファイルの名前を指定するには、その Web サービスを実装している JWS ファイルで @Policy
JWS アノテーションを使用します。
WS-Policy ファイルは、http://www.w3.org/TR/ws-policy/
にある WS-Policy 仕様に準拠する XML ファイルです。WS-Policy ファイルのルート要素は、常に <wsp:Policy>
です。Web サービスの信頼性のあるメッセージングをコンフィグレーションするには、まず <wsrmp:RMAssertion>
子要素を追加する必要があります。これは主に、信頼性のあるメッセージングのすべてのポリシー アサーションをグループ化するための操作です。次に、Web サービスの信頼性のあるメッセージングを定義する <wsrmp:RMAssertion>
の子要素を追加します。これらのアサーションはすべてhttp://www.ibm.com/developerworks/library/specification/ws-polas
にある WS-PolicyAssertions 仕様に準拠しています。
WebLogic Server には、標準的な信頼性のあるメッセージング アサーションを含む WS-Policy ファイルがデフォルトで用意されています。独自の WS-Policy ファイルを作成しない場合は、このファイルを使用できます。デフォルトの WS-Policy ファイルは、『Oracle Fusion Middleware JAX-RPC を使用した WebLogic Web サービス プログラマーズ ガイド』の「信頼性のあるメッセージング用にパッケージ化されている Pre-WS-Policy ファイル」で定義します。
WebLogic Web サービスの作成の詳細については、『Oracle Fusion Middleware JAX-RPC を使用した WebLogic Web サービス プログラマーズ ガイド』の「Web サービスの信頼性のあるメッセージングの使用」を参照してください。
次の節では、http://docs.oasis-open.org/ws-rx/wsrmp/200702
にある WS の信頼性のあるメッセージングのアサーション バージョン 1.1 に基づいた、Web サービスの信頼性のあるメッセージングのアサーションで WS-Policy ファイルを作成する方法について説明します。
以下の図では、WS-Policy ファイルの Web サービスの信頼性のあるメッセージング ポリシー アサーションの要素の階層構造を示します。
注意 : アサーションは、下の図に示す順序で指定する必要があります。 |
図 4-1 Web サービスの信頼性のあるメッセージング ポリシー アサーションの要素階層 1.1
次の例では、WebLogic Web サービスの信頼性のあるメッセージングのコンフィグレーションに使用する簡単な WS-Policy ファイルを示します。
<?xml version="1.0"?> <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> <wsrmp:RMAssertion xmlns:wsrmp="http://docs.oasis-open.org/ws-rx/wsrmp/200702"> <wsrmp:SequenceSTR/> <wsrmp:DeliveryAssurance> <wsp:Policy> <wsrmp:ExactlyOnce/> </wsp:Policy> </wsrmp:DeliveryAssurance> </wsrmp:RMAssertion> </wsp:Policy>
次の節では、Web サービスの信頼性のあるメッセージング WS-Policy ファイルの要素について説明します。
ネストされたポリシー アサーションをグループ化します。
メイン Web サービスの信頼性のあるメッセージング アサーションで、単一の要素にある他のすべてのアサーションをグループ化します。WS-Policy ファイルでこのアサーションを指定すると、対応する Web サービスが、信頼性を確保した状態で呼び出されます。
次の表は、wsrmp:RMAssertion
要素の属性をまとめたものです。
信頼性のあるシーケンスでメッセージを保護するために、CreateSequence
メッセージで参照される wsse:SecurityTokenReference
をランタイムが使用することを指定します。指定できるセキュリティ アサーションは 1 つのみとなる。つまり、wsrmp:SequenceSTR
または wsrmp:SequenceTransportSecurity
のいずれか 1 つは指定できるが、両方は指定できない。
信頼性のあるシーケンスでメッセージを保護するために、CreateSequence
メッセージの送信に使用される SSL 転送セッションをランタイムが使用することを指定します。このアサーションは、特定の転送レベル セキュリティ メカニズム (sp:HttpsToken
など) の使用を要求する sp:TransportBinding
アサーションとともに使用する必要があります。指定できるセキュリティ アサーションは 1 つのみとなる。つまり、wsrmp:SequenceSTR
または wsrmp:SequenceTransportSecurity
のいずれか 1 つは指定できるが、両方は指定できない。
Web サービスに対して、以下のいずれかの配信保証レベル (または、サービスの品質 : 配信品質) を指定します。次の表に定義されている配信保証レベルのいずれか 1 つを設定できます。設定しない場合、配信保証レベルはデフォルトの ExactlyOnce
が使用されます。
表 4-2 信頼性のあるメッセージングの配信保証
配信保証 | 説明 |
---|---|
wsrmp:AtMostOnce |
メッセージは最大で 1 回、重複なしに配信される。メッセージによっては、一度も配信されない可能性もある。 |
wsrmp:AtLeastOnce |
すべてのメッセージが、少なくとも 1 回、配信される。メッセージによっては、1 回よりも多く配信される可能性がある。 |
wsrmp:ExactlyOnce |
すべてのメッセージが、必ず 1 回重複なしに配信される。デフォルトではこの値が使用される。 |
wsrmp:InOrder |
メッセージは、送信された順序で配信される。この配信保証は、上記の 3 つの保証と組み合わせることも可能。この値はデフォルトで有効になっている。 |
配信保証は、wsp:Policy
要素で囲む必要があります。次に例を示します。
<wsrmp:DeliveryAssurance> <wsp:Policy> <wsrmp:ExactlyOnce/> </wsp:Policy> </wsrmp:DeliveryAssurance>
次の節では、http://schemas.xmlsoap.org/ws/2005/02/rm/policy/
にある WS の信頼性のあるメッセージングのアサーション バージョン 1.1 に基づいた、Web サービスの信頼性のあるメッセージングのアサーションで WS-Policy ファイルを作成する方法について説明します。
以下の図では、WS-Policy ファイルの Web サービスの信頼性のあるメッセージング ポリシー アサーションの要素の階層構造を示します。
注意 : アサーションは、下の図に示す順序で指定する必要があります。 |
次の例では、WebLogic Web サービスの信頼性のあるメッセージングのコンフィグレーションに使用する簡単な WS-Policy ファイルを示します。
<?xml version="1.0"?> <wsp:Policy xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm/policy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:beapolicy="http://www.bea.com/wsrm/policy" > <wsrm:RMAssertion > <wsrm:InactivityTimeout Milliseconds="600000" /> <wsrm:BaseRetransmissionInterval Milliseconds="3000" /> <wsrm:ExponentialBackoff /> <wsrm:AcknowledgementInterval Milliseconds="200" /> <beapolicy:Expires Expires="P1D" optional="true"/> </wsrm:RMAssertion> </wsp:Policy>
次の節では、Web サービスの信頼性のあるメッセージング WS-Policy ファイルの要素について説明します。
信頼性のある Web サービスの有効期限が切れ、これ以上のシーケンスを受け付けなくなるまでの時間を指定します。信頼性のある Web サービスのこのインスタンスを呼び出しているクライアント アプリケーションが、有効期限後にオペレーションを呼び出そうとすると、エラーが表示されます。
WS-Policy ファイルで指定されていない場合、デフォルトでは、Web サービスを無期限で利用できます。
表 4-3 <beapolicy:Expires> の属性
属性 | 説明 | 必須/省略可能 |
---|---|---|
Expires |
信頼性のある Web サービスが期限切れになるまでの時間。この属性のフォーマットは、 |
必須 |
Web サービスに対して、以下のいずれかの配信保証レベル (Quality Of Service : 配信品質) を指定します。
表 4-4 <beapolicy:QOS> の属性
属性 | 説明 | 必須/省略可能 |
---|---|---|
QOS |
配信保証レベルを指定する。以下のいずれかの値を指定できる。
また、メッセージを順序通りに配信するように指定するために、
この属性のデフォルト値は 例 : |
必須 |
送り先エンドポイントがスタンドアロンの確認応答を送信しなければならない最大間隔 (ミリ秒単位) を指定します。
送り先エンドポイントは、ソース エンドポイントからメッセージを受信した直後に、返されたメッセージに対する確認応答を送信できます。また、スタンドアロンの確認応答で個別に確認応答を送信することもできます。返されたメッセージに対して確認応答を送信できない場合、送り先エンドポイントは、スタンドアロンの確認応答を送信するまで、確認応答の間隔に設定した時間範囲内で待機することがあります。確認されたメッセージがない場合、送り先エンドポイントは確認応答を送信しない可能性があります。
このアサーションは、メッセージまたは確認応答の形式を送信時の状態から変更しません。これは、ソース エンドポイントが適切に調整できるように確認応答のタイミングを通信するためです。
この要素は省略可能です。この要素を指定しなかった場合、デフォルト値は、送り先エンドポイント用にコンフィグレーションされたストア アンド フォワード (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 ファイルで設定しなかった場合、シーケンスは、非アクティブな状態によってタイムアウトすることはありません。