トランザクションの継承
パッケージでパッケージ実行タスクを使用して、別のパッケージを実行できます。パッケージ実行タスクで実行される子パッケージでは、独自のパッケージ トランザクションを作成する場合もあれば、親パッケージのトランザクションを継承する場合もあります。
次の 2 つの条件に該当する場合、パッケージは親パッケージのトランザクションを継承します。
- パッケージがパッケージ実行タスクによって呼び出される。
- パッケージを呼び出すパッケージ実行タスクも、親パッケージのトランザクションに参加している。
子パッケージ自身がトランザクションに参加していなければ、子パッケージのコンテナやタスクは親パッケージのトランザクションに参加できません。
次のダイアグラムには、3 個のパッケージがあり、すべてトランザクションを使用します。各パッケージには、複数のタスクが含まれています。トランザクションの動作がわかりやすいように、パッケージ実行タスクは 1 つだけ示されています。パッケージ A がパッケージ B および C を実行します。次に、パッケージ B がパッケージ D および E を実行し、パッケージ C がパッケージ F を実行します。
パッケージとタスクのトランザクション属性は次のとおりです。
- パッケージ A および C の TransactionOption は Required に設定されています。
- パッケージ B と D、およびパッケージ実行タスク B、パッケージ実行タスク D、パッケージ実行タスク F の TransactionOption は Supported に設定されています。
- パッケージ E、およびパッケージ実行タスク C、パッケージ実行タスク E の TransactionOption は NotSupported に設定されています。
パッケージ B、D、および F のみが親パッケージのトランザクションを継承できます。
パッケージ B および D は、パッケージ A が開始したトランザクションを継承します。
パッケージ F はパッケージ C が開始したトランザクションを継承します。
パッケージ A および C は独自のトランザクションを制御します。
パッケージ E はトランザクションを使用しません。