今のところ解決できない小さな問題があります。BPEL では、すぐに起動し (つまり、「for」要素が「PT0S」に設定されます)、2 秒ごとに繰り返される onAlarm eventHandler を作成したいと考えています。この eventHandler には、アラームが発生するたびに増加するカウンターが含まれます。
問題は、カウンターを初期化する方法です。変数が onAlarm スコープ内で初期化される場合、値はそれ以上増加しません。「通常の」制御フローでは、プロセスまたは onAlarm スコープが最初に実行されるかどうかが定義されていないため、値も初期化できません。そのため、時々 uninitializedVariable 例外が発生します。
私の解決策は、プロセス スコープでも onAlarm スコープでも変数を初期化せず、変数が初期化され、その後 onAlarm フローが実行される faultHandler を作成することです。問題は、すべての uninitializedVariable の実行がこの faultHandler によってキャッチされ、別のものが存在する可能性があることです。
この問題に対処する別の可能性はありますか、またはどの変数が適切に初期化されていないかをどうにかして見つけて、faultHandler が 2 つの制御フローを取得できるようにすることはできますか?
このソリューションは、すべての BPEL エンジンで機能するはずです。
ありがとう、マイケル