オーケストレーション・ジョブを順に処理
「オーケストレーション・ジョブを順に処理」オプションは、複数インスタンスのオーケストレーションの実行時に、相互に競合する可能性があるアクティビティーがオーケストレーションに含まれている場合に使用できます。 オーケストレーションのインスタンスは、オーケストレーション・ジョブとも呼ばれます。
このタスクについて
例えば、オーケストレーションに「選出」アクティビティーがあり、それに「挿入済み行の取得」、「更新済み行の取得」、および「削除済み行の取得」アクティビティーへのブランチが含まれているとします。
以下のステップは、このオーケストレーションの、「オーケストレーション・ジョブを順に処理」チェック・ボックスを選択していない場合の実行時シナリオの例を示しています。
- データベースへの挿入が実行され、オーケストレーションの最初のインスタンスの作成が起動します。
- オーケストレーションのこの最初のインスタンスは、「選出」アクティビティーの挿入ブランチの処理を開始します。
- 「挿入済み行の取得」アクティビティーが最初のオーケストレーション・インスタンスで完了する前に、データベース内で削除が実行され、オーケストレーションの 2 番目のインスタンスの作成が起動されます。
- オーケストレーションのこの 2 番目のインスタンスは、「選出」アクティビティーの削除ブランチの処理を開始します。
これは望ましくない動作です。なぜなら、データベースでの潜在的な 1 次キー例外を避けるためには、 オーケストレーションの最初のインスタンス (「挿入済み行の取得」アクティビティーを処理中) が完了してから、2 番目のインスタンスが「挿入済み行の取得」アクティビティーの処理を開始する必要があるためです。 これらのデータベース・アクションは順次実行する必要があります。 オーケストレーションのインスタンスを順に実行するように強制するには、オーケストレーションの「オーケストレーション・ジョブを順に処理」チェック・ボックスを選択します。 このオプションを設定すると、オーケストレーションのインスタンスは一度に 1 つずつ実行され、1 次キー例外などの競合は回避されます。
すべてのジョブを単一のインスタンス・チェック・ボックスで実行するように設定するには、 次のステップを実行します。
注: このオプションを選択すると、プロジェクトのパフォーマンスは低下します。
手順
- 「プロジェクト」タブを選択し、Orchestrations フォルダーを展開します。
- オーケストレーションを開くには、Orchestrations フォルダーでオーケストレーションをダブルクリックします。 オーケストレーションが表示されます。
- オーケストレーション・オプションが「オーケストレーション」タブの下部に表示されない場合は、ツールバー・メニューから を選択します。
- 「オーケストレーション・ジョブを順に処理」チェック・ボックスを選択します。 オーケストレーションに共有変数が含まれている場合は、このオプションは自動的に選択されます。