继承的事务
包可以使用执行包任务运行另一个包。 子包也就是执行包任务所运行的包,它可以创建自己的包事务,也可以继承父包事务。
如果同时满足下面这两个条件,则子包会继承父包事务:
该包由执行包任务调用。
调用该包的执行包任务同时还联接父包事务。
子包中的容器和任务无法联接父包事务,除非子包本身联接该事务。
在下面的关系图中,三个包都使用事务。 每个包包含多项任务。 为了强调事务的行为,只显示了执行包任务。 包 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 不使用事务。