Transactions héritées
Un package peut en exécuter un autre à l'aide de la tâche d'exécution de package. Le package enfant, qui est celui exécuté par la tâche d'exécution de package, peut créer sa propre transaction sur package, ou hériter de celle du package parent.
Un package enfant peut hériter de la transaction du package parent si les deux conditions suivantes sont réunies :
Le package enfant est appelé par une tâche d'exécution de package dans le package parent.
La tâche d'exécution de package qui a appelé le package enfant a également rejoint la transaction du package parent.
Les conteneurs et les tâches dans le package enfant ne peuvent pas rejoindre la transaction héritée du package parent, à moins que le package enfant lui-même ne rejoigne la transaction.
Le diagramme suivant présente trois packages utilisant tous des transactions. Chaque package comprend plusieurs tâches. Afin de mettre en évidence le comportement des transactions, seules les tâches d'exécution de package sont indiquées. Le package A exécute les packages B et C. Le package B exécute à son tour les packages D et E, et le package C exécute le package F.
Les packages et les tâches ont les attributs de transaction suivants :
La propriété TransactionOption a pour valeur Required sur les packages A et C.
La propriété TransactionOption a pour valeur Supported sur les packages B, D, et F, et sur les tâches d'exécution des packages B, D et F.
La propriété TransactionOption a pour valeur NotSupported sur le package E, et sur les tâches d'exécution des packages C et E.
Seuls les packages B, D et F peuvent hériter des transactions de leurs packages parents, car leurs propriétés TransactionOption ont pour valeur Supported. Les packages B et D héritent de la transaction démarrée par le package A, alors que le package F hérite de la transaction démarrée par le package C.
Les packages A et C contrôlent leurs propres transactions, car leurs propriétés TransactionOption ont pour valeur Required. En outre, le package C n'hérite pas de la transaction démarrée par le package A, car la propriété TransactionOption de la tâche d'exécution du package C a la valeur NotSupported.
Le package E n'utilise pas les transactions.
|