絶対的な日時でのタイムアウト設定
タイムアウト設定は、リクエスト/レスポンスreceiveアクティビティの絶対的な期限として指定できます。BPEL 2.0では、構文は次の例のようになります。
<receive <bpelx:until>"deadline-expr"</bpelx:until> </receive>
BPEL 1.1では、構文は次の例のようになります。
<receive bpelx:until="deadline-expr"> standard-elements </receive>
bpelx:until
属性の予定有効期限は、現在時刻より少なくとも2秒後である必要があります。それ以外の場合は、タイマーが指定されていなかったかのように、タイマー・スケジュールを無視してスキップされます。
bpelx:until
属性には、datetime
またはdate
のXMLスキーマ・タイプとして評価される静的な値またはXPath式を指定します。アクティビティには、bpelx:for
属性またはbpelx:until
属性のいずれか一方のみを使用できます。
XPathバージョン1.0は、XMLスキーマに対応していません。したがって、XPathバージョン1.0の組込み関数では、dateTime
値やdate
値を作成したり、操作することはできません。ただし、次のいずれかを実行できます。
-
XMLスキーマ定義に準拠する定数(リテラル)の記述、および期限値としての使用。
-
使用可能ないずれかのタイプの変数(パート)からのフィールドの抽出、および期限値としての使用。
XPathバージョン1.0では、リテラルが文字列リテラルとして処理されますが、結果はdateTime
値またはdate
値の字句表記として解釈されます。
有効なdatetime
値またはdate
値が取得されると、アクティビティの有効期限が指定の日付に設定されます。たとえば、bpelx:until="'2009-12-24T18:00+01:00'"
というdatetime
値は、アクティビティが実行開始以降、インバウンド・メッセージの着信を遅くとも2009年12月24日午後6時(UTC+1)以前に予定していることを示します。
ノート:
現在、pickアクティビティのonMessageブランチにはタイムアウト設定属性が適用されません。これは、pickアクティビティのonMessageブランチとonAlarmブランチを使用した同じ機能が存在しているためです。
タイムアウト日付は、次のアクティビティにのみ指定できます。
-
中間プロセスのreceive
-
createInstance="true"
の指定がないreceiveアクティビティ
receiveアクティビティは、インスタンス化された後にのみタイムアウトします。receiveアクティビティのエントリではタイムアウトになりません。