ビジネス プロセス管理ソリューションの割り込み処理
このセクションでは、ビジネス プロセス管理ソリューションで使用される割り込み処理のメカニズムについて説明します。 割り込みメカニズムを使用すると、注文の更新時または取り消し時に注文処理を停止できます。
割り込み処理
処理ステージを実装するオーケストレーションは、プロセスの他の部分からの割り込み要求をテストするオーケストレーション CheckInterrupt を呼び出します。 CheckInterrupt オーケストレーションは、Listen 図形で構成されます。 Listen 図形の 1 つの分岐は、現在の順序と同じ関連付け ID を持つメッセージをチェックします。 このようなメッセージがある場合、 CheckInterrupt オーケストレーションは受信確認メッセージを送信し、 Throw 図形を実行します。 Listen 図形の分岐は左から右に実行されるため、遅延は右側の分岐に表示されます。 遅延時間がゼロ (0) であることに注意してください。
Listen 図形、受信分岐、および遅延分岐の組み合わせにより、オーケストレーションでメッセージをチェックできます。 割り込みメッセージがある場合、左の分岐が実行されます。 メッセージがない場合、右側の分岐が実行され、呼び出し元のオーケストレーションに戻ります。 割り込みメッセージは、いつでも送信できます。 CheckInterrupt オーケストレーションは場合によっては実行されないため、割り込みメッセージが待機している可能性があります。
OrderManager は、割り込みオーケストレーションを呼び出すことによって割り込みを設定します。 割り込みオーケストレーションは、割り込みメッセージを割り込みポートに送信し、応答を待機します。 オーケストレーションは、外側のスコープ図形の Timeout プロパティを使用して、応答が受信されない場合にループを再開します。 このオーケストレーションは、応答を受信する前にスコープがタイムアウトする限り、割り込みメッセージの送信を続けます。 タイムアウトは、要求がサブスクリプションと合致したが、応答する時間がないことを示します。 応答がある場合、または InterruptPort のサブスクリプションがない場合、ループは終了します。
OrderManager がプロセス ステージと共に使用する要求/応答完了パターンは、割り込み処理の重要な部分です。 OrderManager はステージからの応答 (受信確認) を待機するため、ステージの実行が開始されたことを認識してから続行します。 これにより、ステージを開始する前に割り込みを受信することを防止します。 これにより、 OrderManager は、割り込みのサブスクリプションがない場合、ステージが完了したことを認識することもできます。
参照
ビジネス プロセス管理ソリューションでの処理
プロセス マネージャーのロジック
ExceptionHandler オーケストレーション