Cosminexus V9 アプリケーションサーバ Webサービス開発ガイド

[目次][用語][索引][前へ][次へ]

23.4 WS-Policyによる設定

WS-RM 1.2機能には,WS-RM Policyでの設定のほかに,WS-PolicyとしてWSDLに記述する独自の設定があります。ここではWSDLに追加するプロパティについて説明します。

WS-RM Policyの追加方法については,「34.4 WS-RM Policyの追加方法」を参照してください。

表23-4 WSDLに追加するプロパティ

項番 プロパティ 説明 単位 範囲 デフォルト値
1 <net35rmp:InactivityTimeout Milliseconds = "設定値"/> シーケンスの有効期限を設定します。アプリケーションメッセージの再送間隔を設定する場合,アプリケーションメッセージの再送間隔以上の値を設定してください。

設定した期間,通信されない場合
シーケンスの有効期限が切れ,シーケンスは自動的に終了します。

有効期限が切れたあとにメッセージを送信した場合
WebServiceExceptionの子クラスであるSequenceTerminatedException例外またはUnknownSequenceException例外が発生します。

有効期限が切れたあとにメッセージを受信した場合
SequenceTerminatedフォルトまたはUnknownSequenceフォルトを返信します。

通信を続ける場合
再度ポートのオブジェクトを取得し,シーケンスを生成し直す必要があります。

範囲外の値を指定した場合
警告メッセージを出力し,デフォルト値で動作します(KDJR16017-W)。
ミリ秒 1〜9,223,372,036,854,775,807 600,000
2 <cwsrm:MaxMessageNumber value="設定値"/> 一つのシーケンスで扱える最大のメッセージ数を設定します。

設定したメッセージ数を超えてメッセージを送信した場合
WebServiceExceptionの子クラスであるMessageNumberRolloverException例外が発生します。

設定したメッセージ数を超えてメッセージを受信した場合
MessageNumberRolloverフォルトを返信します。

通信を続ける場合
既存のシーケンスを終了するため,ポートのオブジェクトをcom.sun.xml.ws.Closeableにキャストし,closeメソッドを呼び出します。その後,再度ポートのオブジェクトを取得し,シーケンスを生成し直す必要があります。

範囲外の値を指定した場合
警告メッセージを出力し,デフォルト値で動作します(KDJR16017-W)。
1〜100,000 10,000
3 <metro:AckRequestInterval Milliseconds="設定値"/> WS-RM 1.2機能が自動的にバックグラウンドで送信するAckメッセージの送信間隔を設定します。タイミングによっては,設定値の2倍程度の間隔が開く場合があります。
範囲外の値を指定した場合,警告メッセージを出力し,デフォルト値で動作します(KDJR16017-W)。
ミリ秒 1〜9,223,372,036,854,775,807 2,000
4 <metro:RetransmissionConfig>
<metro:Interval Milliseconds="設定値"/>
</metro:RetransmissionConfig>
アプリケーションメッセージの再送間隔を設定します。
範囲外の値を設定した場合,警告メッセージを出力し,デフォルト値で動作します(KDJR16017-W)。
ミリ秒 1〜9,223,372,036,854,775,807 2,000
5 <metro:RetransmissionConfig>
<metro:MaxRetries>設定値</metro:MaxRetries>
</metro:RetransmissionConfig>
アプリケーションメッセージの再送回数を設定します。設定した再送回数を超えると,再送を停止し,アプリケーションに発生したエラーを返します。

0を指定した場合
再送回数は無限になります。

範囲外の値を設定した場合
警告メッセージを出力し,デフォルト値で動作します(KDJR16017-W)。
0〜9,223,372,036,854,775,807 3

(凡例)
−:なし

シーケンスの有効期限を300,000ミリ秒(5分)に,シーケンスの最大メッセージ数を1,000に設定するWS-RM Policyの例を次に示します。

  <wsp:Policy wsu:Id="WSRM_policy">
    <wsp:ExactlyOne>
      <wsp:All>
        <wsrmp:RMAssertion>
          <wsp:Policy>
            <wsrmp:DeliveryAssurance>
              <wsp:Policy>
                <wsrmp:ExactlyOnce/>
              </wsp:Policy>
            </wsrmp:DeliveryAssurance>
          </wsp:Policy>
        </wsrmp:RMAssertion>
        <wsaw:UsingAddressing/>
        <net35rmp:InactivityTimeout Milliseconds="300000"/>
        <cwsrm:MaxMessageNumber value="1000"/>
      </wsp:All>
    </wsp:ExactlyOne>
  </wsp:Policy>