待機アクティビティは,ビジネスプロセスの処理フローを一定の間隔または期限まで待機する処理を定義するアクティビティです。このアクティビティを使用すると,指定した期間の間,または指定した時刻まで,ビジネスプロセスの処理を待機することができます。
待機アクティビティは,[待機アクティビティ]ダイアログで詳細を定義します。待機する時間の間隔または期限はXPath式で指定します。
待機時間に指定する式はXPath式になります。ビジネスプロセスの処理の中でXPath式を評価し,その結果で得た文字列を待機時間として使用します。XPath式を評価して得ることができる文字列は,BPEL標準規格により一部制限があります。
XPath式を評価して得ることができる文字列を次に説明します。なお,XPathの指定については,「6.6.18 XPathを指定する」を参照してください。
待機時間に「間隔」を指定する場合,XPath式を評価して得ることができる文字列は,XML Schema型duration(xsd:duration)に従っている必要があります。XML Schema型durationとは,PnYnMnDTnHnMnS形式の経過時間を表す文字列を示す変数型です。
待機時間に「間隔」を指定する場合に,XPath式を評価して得ることができる文字列の例を次に示します。
なお,[待機アクティビティ]ダイアログの[式]には,XPath式を指定する代わりに,「'」または「"」で囲むことで,直接待機する間隔を指定することもできます。「'」または「"」で直接待機する間隔を指定する場合の例を次に示します。
待機時間に「期限」を指定する場合,XPath式を評価して得ることができる文字列は,XML Schema型dateTime(xsd:dateTime)に従っている必要があります。XML Schema型dateTimeとは,CCYY-MM-DDThh:mm:ss.sssTZ形式(.sssとTZは省略できる)の日時を表す文字列を示す変数型です。
待機時間に「期限」を指定する場合に,XPath式を評価して得ることができる文字列の例を次に示します。
なお,[待機アクティビティ]ダイアログの[式]には,XPath式を指定する代わりに,「'」または「"」で囲むことで,直接待機する期限を指定することもできます。「'」または「"」で直接待機する期限を指定する場合の例を次に示します。
HCSC簡易セットアップ機能で構築した環境では,待機アクティビティ後の処理の多重度がデフォルトで1に設定されているため,複数のプロセスインスタンスの待機アクティビティ後の処理は同時に実行されません。複数のプロセスインスタンスから同時に待機アクティビティ後の処理を行うと,あとから処理を開始したプロセスインスタンスの処理は,一つ前の処理が終了してから実行されます。
複数のプロセスインスタンスの待機アクティビティ後の処理を同時に実行したい場合は,usrconf.propertiesのejbserver.ejb.timerservice.maxCallbackThreadsプロパティを変更して,処理の多重度を調節してください。
複数のプロセスインスタンスを実行している場合で,待機アクティビティ後の処理の多重度が1のときと多重度を上げたときの処理の例を次の図に示します。なお,この例では,複数のプロセスインスタンスの処理が待機アクティビティ(待機1)で13:00まで待機したあと,待機後の処理(無操作2および無操作3)に2分掛かるものとします。
図6-10 待機後の処理の多重度が1のときと待機後の処理の多重度を上げたときの処理の例
処理の多重度の設定方法については,マニュアル「Cosminexus アプリケーションサーバ 運用管理ポータル操作ガイド」の「10.9.3 EJBコンテナの設定」を参照してください。