Hitachi

Cosminexus V11 アプリケーションサーバ 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>