Oracle® Fusion Middleware Oracle WebLogic Server WebLogic Webサービス・リファレンス 11gリリース1 (10.3.6) B61641-04 |
|
![]() 前 |
![]() 次 |
この章では、WS-PolicyファイルのWebサービスの信頼性のあるメッセージング・ポリシー・アサーションに関するリファレンス情報を示します。
この章の内容は以下のとおりです。
Webサービスの信頼性のあるメッセージングのアサーション - バージョン1.2および1.1を含むWS-Policyファイル
Webサービスの信頼性のあるメッセージングのアサーション - バージョン1.0(非推奨)を含むWS-Policyファイル
WS-Policyファイルを使用すると、宛先エンドポイントで実行されているWebLogic Webサービスの信頼性のあるメッセージング機能を構成できます。Webサービスに関連付けられているWS-Policyファイルの名前を指定するには、そのWebサービスを実装しているJWSファイルで@Policy
JWSアノテーションを使用します。WS-Policyファイルとは、WS-Policy仕様(http://www.w3.org/TR/ws-policy/
)に準拠したXMLファイルです。
WS-Policyファイルのルート要素は常に<wsp:Policy>
です。Webサービスの信頼性のあるメッセージングを構成するには、まず<wsrmp:RMAssertion>
子要素を追加する必要があります。これは主に、信頼性のあるメッセージングのすべてのポリシー・アサーションをグループ化するための操作です。次に、Webサービスの信頼性のあるメッセージングを定義するために<wsrmp:RMAssertion>
に子要素を追加します。これらのすべてのアサーションは、WS-PolicyAssertions仕様(http://www.ibm.com/developerworks/library/specification/ws-polas
)に準拠します。
WebLogic Serverには、標準的な信頼性のあるメッセージング・アサーションを含むWS-Policyファイルがデフォルトで用意されているので、独自のWS-Policyファイルを作成しない場合は、このファイルを使用できます。ディフォルトWS-Policyファイルは次に定義されています。
JAX-WS: 『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』の信頼性のあるメッセージングおよびMakeConnectionにパッケージ化されているWS-Policyファイルに関する項
JAX-RPC: 『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』の信頼性のあるメッセージング用にパッケージ化されているWS-Policyファイルに関する項
信頼性のあるWebLogic Webサービスに関するタスク中心の説明は、次を参照してください。
JAX-WS: 『Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWeb Services Reliable Messagingの使用に関する項
JAX-RPC: 『Oracle WebLogic Server JAX-RPC Webサービスの高度な機能のプログラミング』のWeb Services Reliable Messagingの使用に関する項
次の項では、http://docs.oasis-open.org/ws-rx/wsrmp/200702
にある、WS Reliable Messaging Policy Assertionバージョン1.2および1.1に基づいた、Webサービスの信頼性のあるメッセージングのアサーションを含むWS-Policyファイルを作成する方法について説明します。
次の図では、WS-PolicyファイルにおけるWebサービスの信頼性のあるメッセージング・ポリシー・アサーションの要素の階層構造を示します。
注意: アサーションは、下の図に示す順序で指定する必要があります。 |
図4-1 Webサービスの信頼性のあるメッセージング・ポリシー・アサーション1.2および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 Reliable Messaging Policy Assertion 1.0に基づいた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サービスが期限切れになるまでの時間。この属性のフォーマットは、XMLスキーマのduration( |
はい |
Webサービスの配信保証(またはサービス品質を指定します。
表4-4 <beapolicy:QOS>の属性
属性 | 説明 | 必須? |
---|---|---|
QOS |
配信保証を指定します。以下のいずれかの値を指定できます。
また、メッセージを順序どおりに配信するように指定するために、
この属性のデフォルト値は 例: |
はい |
宛先エンドポイントがスタンドアロンの確認応答を送信しなければならない最大間隔(ミリ秒単位)を指定します。
宛先エンドポイントは、ソース・エンドポイントからメッセージを受信した直後に、返されたメッセージに対する確認応答を送信できます。また、スタンドアロンの確認応答で個別に確認応答を送信することもできます。返されたメッセージに対して確認応答を送信できない場合、宛先エンドポイントは、スタンドアロンの確認応答を送信するまで、確認応答の間隔に設定した時間範囲内で待機することがあります。未確認メッセージがない場合、宛先エンドポイントは確認応答を送信しない可能性があります。
このアサーションは、メッセージまたは確認応答の形式を送信時の状態から変更しません。これは、ソース・エンドポイントが適切に調整できるように確認応答のタイミングを通信するためです。
この要素は省略可能です。この要素を指定しなかった場合、デフォルト値は、宛先エンドポイント用に構成されたストア・アンド・フォワード(SAF)エージェントによって設定されます。
ソース・エンドポイントがメッセージを送信してから再送信を行うまでの間隔(ミリ秒単位)を指定します。
ソース・エンドポイントが、この要素で指定した間隔内で所定のメッセージの確認応答を受信しなかった場合、ソース・エンドポイントはメッセージを再送信します。ソース・エンドポイントは、メッセージのシーケンスの存続期間内の任意の時点で、この再送信間隔を変更することがあります。このアサーションは、メッセージまたは確認応答の形式を送信時の状態から変更せず、その送信のタイミングのみを指定します。
この要素を<wsrm:ExponentialBackoff>
要素と組み合せて使用すると、<wsrm:ExponentialBackoff>
で指定したアルゴリズムを使用して再送信間隔を調整するように指定できます。
この要素は省略可能です。この要素を指定しなかった場合、デフォルト値は、ソース・エンドポイント用に構成されたストア・アンド・フォワード(SAF)エージェントによって設定されます。管理コンソールを使用してSAFエージェントを構成する場合、この値には「Retry Delay Base」というラベルが付けられます。
再送信の間隔が、指数関数的なバックオフ・アルゴリズムを使用して調整されることを指定します。
この要素は、<wsrm:BaseRetransmissionInterval>
と一緒に使用します。宛先エンドポイントが、<wsrm:BaseRetransmissionInterval>
で指定した時間内でメッセージのシーケンスを確認応答しなかった場合、メッセージが引続き確認されなければ、連続再送信のタイミングに対して、ソース・エンドポイントは指数関数的なバックオフ・アルゴリズムを使用します。
指数関数的なバックオフ・アルゴリズムは、連続再送信の間隔が、基本の再送信間隔を基に指数的に増えるように指定します。たとえば、基本の再送信間隔が2秒で、指数関数的なバックオフ要素がWS-Policyファイルで設定されている場合、連続再送信の間隔は、メッセージが確認されなければ、2、4、8、16、32秒というように増えていきます。
この要素は省略可能です。設定しなかった場合、連続再送信の間隔は指数的に増えず、同じ値が維持されます。
この要素には属性はありません。
メッセージのシーケンスが非アクティブになっている期間(ミリ秒)を指定します。メッセージのシーケンスは、一意のシーケンス番号で識別されるメッセージのセットとして定義され、これに対して特定の配信保証が適用されます。通常、シーケンスは単一のソース・エンドポイントから生じます。この要素で指定した期間中に、宛先エンドポイントがソース・エンドポイントからのメッセージを受け取っていない場合、宛先エンドポイントは、処理が行われずシーケンスは終了したものと見なす可能性があります。これは、ソース・エンドポイントについても同様です。
この要素は省略可能です。WS-Policyファイルで設定しなかった場合、シーケンスは、非アクティブな状態によってタイムアウトすることはありません。