アクティビティの起動時からの相対的なタイムアウト設定
タイムアウト設定として、アクティビティの起動時からの相対的なタイムアウトを指定できます。この設定は、次の例に示すBPEL 1.1用の構文を使用して相対的な期間として指定されます。
<receive | bpelx:for="duration-expr"> standard-elements </receive>
BPEL 2.0では、構文は次の例のようになります。
<receive | <bpelx:for>'duration-expr'</bpelx:for> standard-elements </receive>
このタイプでは、bpelx:for
属性を使用して、XMLスキーマ・タイプ期間として評価される静的な値またはXPath式を指定します。アクティビティには、bpelx:for
属性またはbpelx:until
属性のいずれか一方のみを使用できます。
XPath式がマイナスの期間として評価された場合、タイムアウトは無視され、その期間の値が無効であることを示すインスタンス監査証跡にイベントが記録されます。
有効な期間の値が取得されると、アクティビティの有効期限は、現在のノード時間(そのノードが使用可能になってからのクラスタ時間)にその期間の値を加算した値に設定されます。たとえば、期間の値bpelx:for="'PT5M'"
は、アクティビティが実行開始後5分以内にインバウンド・メッセージの着信を予定していることを示します。
ノート:
現在、pickアクティビティのonMessageブランチにはタイムアウト設定属性が適用されません。これは、pickアクティビティのonMessageブランチとonAlarmブランチを使用した同じ機能が存在しているためです。
タイムアウト期間は、次のアクティビティにのみ指定できます。
-
中間プロセスのreceiveアクティビティ
-
createInstance="true"
の指定がないreceiveアクティビティ
receiveアクティビティは、インスタンス化された後にのみタイムアウトします。receiveアクティビティのエントリではタイムアウトになりません。