ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server WebLogic Webサービス・リファレンス
12c リリース1 (12.1.1)
B65959-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

4 Webサービスの信頼性のあるメッセージングのポリシー・アサーションに関するリファレンス

この章では、WS-PolicyファイルのWebサービスの信頼性のあるメッセージング・ポリシー・アサーションに関するリファレンス情報を示します。

この章の内容は以下のとおりです。

Webサービスの信頼性のあるメッセージングのアサーションを含む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仕様(https://www.ibm.com/developerworks/library/specification/ws-polas)に準拠します。

WebLogic Serverには、標準的な信頼性のあるメッセージング・アサーションを含むWS-Policyファイルがデフォルトで用意されているので、独自のWS-Policyファイルを作成しない場合は、このファイルを使用できます。ディフォルトWS-Policyファイルは次に定義されています。

信頼性のあるWebLogic Webサービスに関するタスク中心の説明は、次を参照してください。

Webサービスの信頼性のあるメッセージングのアサーション - バージョン1.2および1.1を含むWS-Policyファイル

次の項では、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の要素階層

図4-1の説明が続きます
「図4-1 Webサービスの信頼性のあるメッセージング・ポリシー・アサーション1.2および1.1の要素階層」の説明

Webサービスの信頼性のあるメッセージングのアサーション1.2および1.1を含むWS-Policyファイルの例

次の例では、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ファイルの要素について説明します。

wsp:Policy

ネストされたポリシー・アサーションをグループ化します。

wsrmp:RMAssertion

Webサービスの信頼性のあるメッセージングのメイン・アサーションで、単一の要素にある他のすべてのアサーションをグループ化します。WS-Policyファイルでこのアサーションを指定すると、対応するWebサービスが、信頼性を確保した状態で呼び出されます。

次の表は、wsrmp:RMAssertion要素の属性をまとめたものです。

表4-1 <wsrmp:RMAssertion>の属性

属性 説明 必須?
optional

信頼性を確保した状態でWebサービス操作を呼び出す必要があるかどうかを指定します。この属性の有効な値は、trueおよびfalseです。デフォルト値はfalseです。

いいえ


wsrmp:SequenceSTR

信頼性のあるシーケンスでメッセージを保護するために、CreateSequenceメッセージで参照されるwsse:SecurityTokenReferenceをランタイムが使用するように指定します。指定できるセキュリティ・アサーションは1つのみとなります。つまり、wsrmp:SequenceSTRまたはwsrmp:SequenceTransportSecurityのいずれか1つは指定できますが、両方は指定できません。

wsrmp:SequenceTransportSecurity

信頼性のあるシーケンスでメッセージを保護するために、CreateSequenceメッセージの送信に使用されるSSLトランスポートセッションをランタイムが使用することを指定します。このアサーションは、特定のトランスポート・レベル・セキュリティ・メカニズム(sp:HttpsTokenなど)の使用を要求するsp:TransportBindingアサーションとともに使用する必要があります。指定できるセキュリティ・アサーションは1つのみとなります。つまり、wsrmp:SequenceSTRまたはwsrmp:SequenceTransportSecurityのいずれか1つは指定できますが、両方は指定できません。

wsrmp:DeliveryAssurance

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>

Webサービスの信頼性のあるメッセージングのアサーション - バージョン1.0(非推奨)を含むWS-Policyファイル

次の各項では、http://schemas.xmlsoap.org/ws/2005/02/rm/policy/にある、WS Reliable Messaging Policy Assertion 1.0に基づいたWebサービスの信頼性のあるメッセージングのアサーションを含むWS-Policyファイルを作成する方法について説明します。

グラフィカルな表現

次の図では、WS-PolicyファイルにおけるWebサービスの信頼性のあるメッセージング・ポリシー・アサーションの要素の階層構造を示します。


注意:

アサーションは、下の図に示す順序で指定する必要があります。

図4-2 Webサービスの信頼性のあるメッセージング・ポリシー・アサーションの要素階層

図4-2の説明が続きます
「図4-2 Webサービスの信頼性のあるメッセージング・ポリシー・アサーションの要素階層」の説明

Webサービスの信頼性のあるメッセージングのアサーションを含むWS-Policyファイルの例

次の例では、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ファイルの要素について説明します。

beapolicy:Expires

信頼性のあるWebサービスの有効期限が切れ、これ以上のシーケンスを受け付けなくなるまでの時間を指定します。信頼性のあるWebサービスのこのインスタンスを呼び出しているクライアント・アプリケーションが、有効期限後に操作を呼び出そうとすると、エラーが発生します。

WS-Policyファイルで指定されていない場合、デフォルトでは、Webサービスを無期限で利用できます。

表4-3 <beapolicy:Expires>の属性

属性 説明 必須?
Expires

信頼性のあるWebサービスが期限切れになるまでの時間。この属性のフォーマットは、XMLスキーマのduration(http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#duration)のデータ型に準拠しています。たとえば、信頼性のあるWebサービスが3時間後に期限切れになるように設定するには、Expires="P3H"と指定します。

はい


beapolicy:QOS

Webサービスの配信保証(またはサービス品質を指定します。

表4-4 <beapolicy:QOS>の属性

属性 説明 必須?
QOS

配信保証を指定します。以下のいずれかの値を指定できます。

  • AtMostOnce - メッセージは最大で1回、重複なしに配信されます。メッセージによっては、一度も配信されない可能性もあります。

  • AtLeastOnce - すべてのメッセージが、少なくとも1回、配信されます。メッセージによっては、1回よりも多く配信される可能性があります。

  • ExactlyOnce - すべてのメッセージが、必ず1回、重複なしに配信されます。

また、メッセージを順序どおりに配信するように指定するために、InOrder文字列を追加することもできます。

XXXOnceのいずれかの値を指定したが、InOrderを指定しなかった場合、メッセージの配信順序は保証されません。これは、QOS要素全体が指定されていない場合のデフォルト値(ExactlyOnce InOrder)とは異なります。

この属性のデフォルト値はExactlyOnce InOrderです。

例: <beapolicy:QOS QOS="AtMostOnce InOrder" />

はい


wsrm:AcknowledgementInterval

宛先エンドポイントがスタンドアロンの確認応答を送信しなければならない最大間隔(ミリ秒単位)を指定します。

宛先エンドポイントは、ソース・エンドポイントからメッセージを受信した直後に、返されたメッセージに対する確認応答を送信できます。また、スタンドアロンの確認応答で個別に確認応答を送信することもできます。返されたメッセージに対して確認応答を送信できない場合、宛先エンドポイントは、スタンドアロンの確認応答を送信するまで、確認応答の間隔に設定した時間範囲内で待機することがあります。未確認メッセージがない場合、宛先エンドポイントは確認応答を送信しない可能性があります。

このアサーションは、メッセージまたは確認応答の形式を送信時の状態から変更しません。これは、ソース・エンドポイントが適切に調整できるように確認応答のタイミングを通信するためです。

この要素は省略可能です。この要素を指定しなかった場合、デフォルト値は、宛先エンドポイント用に構成されたストア・アンド・フォワード(SAF)エージェントによって設定されます。

表4-5 <wsrm:AcknowledgementInterval>の属性

属性 説明 必須?
Milliseconds

宛先エンドポイントがスタンドアロンの確認応答を送信しなければならない最大間隔(ミリ秒単位)を指定します。

はい


wsrm:BaseRetransmissionInterval

ソース・エンドポイントがメッセージを送信してから再送信を行うまでの間隔(ミリ秒単位)を指定します。

ソース・エンドポイントが、この要素で指定した間隔内で所定のメッセージの確認応答を受信しなかった場合、ソース・エンドポイントはメッセージを再送信します。ソース・エンドポイントは、メッセージのシーケンスの存続期間内の任意の時点で、この再送信間隔を変更することがあります。このアサーションは、メッセージまたは確認応答の形式を送信時の状態から変更せず、その送信のタイミングのみを指定します。

この要素を<wsrm:ExponentialBackoff>要素と組み合せて使用すると、<wsrm:ExponentialBackoff>で指定したアルゴリズムを使用して再送信間隔を調整するように指定できます。

この要素は省略可能です。この要素を指定しなかった場合、デフォルト値は、ソース・エンドポイント用に構成されたストア・アンド・フォワード(SAF)エージェントによって設定されます。管理コンソールを使用してSAFエージェントを構成する場合、この値には「Retry Delay Base」というラベルが付けられます。

表4-6 <wsrm:BaseRetransmissionInterval>の属性

属性 説明 必須?
Milliseconds

ソース・エンドポイントがメッセージを再送信するまでの時間(ミリ秒)。

はい


wsrm:ExponentialBackoff

再送信の間隔が、指数関数的なバックオフ・アルゴリズムを使用して調整されることを指定します。

この要素は、<wsrm:BaseRetransmissionInterval>と一緒に使用します。宛先エンドポイントが、<wsrm:BaseRetransmissionInterval>で指定した時間内でメッセージのシーケンスを確認応答しなかった場合、メッセージが引続き確認されなければ、連続再送信のタイミングに対して、ソース・エンドポイントは指数関数的なバックオフ・アルゴリズムを使用します。

指数関数的なバックオフ・アルゴリズムは、連続再送信の間隔が、基本の再送信間隔を基に指数的に増えるように指定します。たとえば、基本の再送信間隔が2秒で、指数関数的なバックオフ要素がWS-Policyファイルで設定されている場合、連続再送信の間隔は、メッセージが確認されなければ、2、4、8、16、32秒というように増えていきます。

この要素は省略可能です。設定しなかった場合、連続再送信の間隔は指数的に増えず、同じ値が維持されます。

この要素には属性はありません。

wsrm:InactivityTimeout

メッセージのシーケンスが非アクティブになっている期間(ミリ秒)を指定します。メッセージのシーケンスは、一意のシーケンス番号で識別されるメッセージのセットとして定義され、これに対して特定の配信保証が適用されます。通常、シーケンスは単一のソース・エンドポイントから生じます。この要素で指定した期間中に、宛先エンドポイントがソース・エンドポイントからのメッセージを受け取っていない場合、宛先エンドポイントは、処理が行われずシーケンスは終了したものと見なす可能性があります。これは、ソース・エンドポイントについても同様です。

この要素は省略可能です。WS-Policyファイルで設定しなかった場合、シーケンスは、非アクティブな状態によってタイムアウトすることはありません。

表4-7 <wsrm:InactivityTimeout>の属性

属性 説明 必須?
Milliseconds

非アクティブの期間を定義する値(ミリ秒)。

はい


wsrm:RMAssertion

Webサービスの信頼性のあるメッセージングのメイン・アサーションで、単一の要素にある他のすべてのアサーションをグループ化します。

WS-Policyファイルでこのアサーションを指定すると、対応するWebサービスが、信頼性を確保した状態で呼び出されます。

表4-8 <wsrm:RMAssertion>の属性

属性 説明 必須?
optional

信頼性を確保した状態でWebサービス操作を呼び出す必要があるかどうかを指定します。

この属性の有効な値は、trueおよびfalseです。デフォルト値はfalseです。

いいえ