次の方法で共有


トランザクションの継承

パッケージでパッケージ実行タスクを使用して、別のパッケージを実行できます。 パッケージ実行タスクで実行される子パッケージでは、独自のパッケージ トランザクションを作成する場合もあれば、親パッケージのトランザクションを継承する場合もあります。

次の 2 つの条件に該当する場合、パッケージは親パッケージのトランザクションを継承します。

  • パッケージがパッケージ実行タスクによって呼び出される。

  • パッケージを呼び出すパッケージ実行タスクも、親パッケージのトランザクションに参加している。

子パッケージ自身がトランザクションに参加していなければ、子パッケージのコンテナーやタスクは親パッケージのトランザクションに参加できません。

パッケージ トランザクションの図

次の図には、3 個のパッケージがあり、すべてトランザクションを使用します。 各パッケージには、複数のタスクが含まれています。 トランザクションの動作がわかりやすいように、パッケージ実行タスクは 1 つだけ示されています。 パッケージ A がパッケージ B および C を実行します。次に、パッケージ B がパッケージ D および E を実行し、パッケージ C がパッケージ F を実行します。

パッケージとタスクのトランザクション属性は次のとおりです。

  • パッケージ A および C のTransactionOptionRequired に設定されています。

  • パッケージ B と D、およびパッケージ実行タスク B、パッケージ実行タスク D、パッケージ実行タスク F のTransactionOptionSupported に設定されています。

  • パッケージ E、およびパッケージ実行タスク C、パッケージ実行タスク E のTransactionOptionNotSupported に設定されています。

トランザクションの継承のフロー

パッケージ B、D、および F のみが親パッケージのトランザクションを継承できます。

パッケージ B および D は、パッケージ A が開始したトランザクションを継承します。

パッケージ F はパッケージ C が開始したトランザクションを継承します。

パッケージ A および C は独自のトランザクションを制御します。

パッケージ E はトランザクションを使用しません。

トランザクションを使用するようにパッケージを構成する