ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server Web サービス リファレンス
11g リリース 1 (10.3.1)
B55558-01
 

目次
目次

戻る
戻る
 
次へ
次へ
 

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

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

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

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 サービスの信頼性のあるメッセージングの使用」を参照してください。

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

次の節では、http://docs.oasis-open.org/ws-rx/wsrmp/200702 にある WS の信頼性のあるメッセージングのアサーション バージョン 1.1 に基づいた、Web サービスの信頼性のあるメッセージングのアサーションで WS-Policy ファイルを作成する方法について説明します。

グラフィカルな表現

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


注意 :

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

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

図 4-1 の説明は図の下のリンクをクリックしてください。
「図 4-1 Web サービスの信頼性のあるメッセージング ポリシー アサーション 1.1 の要素階層」の説明

Web サービスの信頼性のあるメッセージングのアサーションを含む WS-Policy ファイルの例 - バージョン 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 ファイルの要素について説明します。

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

次の節では、http://schemas.xmlsoap.org/ws/2005/02/rm/policy/ にある WS の信頼性のあるメッセージングのアサーション バージョン 1.1 に基づいた、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 サービスが期限切れになるまでの時間。この属性のフォーマットは、http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/#duration にある XML スキーマ期間型に準拠している。たとえば、信頼性のある Web サービスが 3 時間後に期限切れになるように設定するには、Expires="P3H" と指定する。

必須


beapolicy:QOS

Web サービスに対して、以下のいずれかの配信保証レベル (Quality Of Service : 配信品質) を指定します。

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

属性 説明 必須/省略可能
QOS

配信保証レベルを指定する。以下のいずれかの値を指定できる。

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

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

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

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

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

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

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

必須


wsrm:AcknowledgementInterval

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

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

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

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

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

属性 説明 必須/省略可能
Milliseconds

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


wsrm:BaseRetransmissionInterval

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

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

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

この要素は省略可能です。この要素を指定しなかった場合、デフォルト値は、ソース エンドポイント用にコンフィグレーションされたストア アンド フォワード (SAF) エージェントによって設定されます。Administration Console を使用して 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

不可