Web Services Invocation Framework (WSIF) を Java Message Service (JMS) で使用する場合、 同期または非同期操作に対してタイムアウトを設定できます。
これらのタイムアウトのデフォルト値は、wsif.properties ファイルで以下のように定義されています。
# maximum number of milliseconds to wait for a response to a synchronous request. # Default value if not defined is to wait forever. wsif.syncrequest.timeout=10000 # maximum number of seconds to wait for a response to an async request. # if not defined or invalid defaults to no timeout wsif.asyncrequest.timeout=60
これらのタイムアウト値の両方を処理するコードは、 単位時間としてミリ秒を使用します。WSIFProperties クラスの getAsyncTimeout メソッドは、wsif.asyncrequest.timeout の値に 1000 を掛けて、 値を秒からミリ秒に変換します。
特定の要求に対するこれらのデフォルト値は、操作要求時に、WSDL エレメント <jms:property> および <jms:propertyValue> を指定して JMS プロパティーの設定を行うことによって、 オーバーライドすることができます。プロパティーの名前を WSIF プロパティー・ファイルからのタイムアウト名に設定します。
<jms:propertyValue name="wsif.syncrequest.timeout" type="xsd:string" value="120000"/>そして、 次の例は非同期タイムアウトを使用不可にします (ゼロの値は永久に待機することを意味します)。
<jms:propertyValue name="wsif.asyncrequest.timeout" type="xsd:string" value="0"/>
非同期タイムアウトの有効期限が切れると、 応答を待っているリスナーやメッセージ・データベースが通知を受けられなくなります。 非同期タイムアウトは、保管済みの WSIFOperation が削除可能であることを、 相関サービスに知らせる場合にのみ 使用されます。