【发布时间】:2015-07-02 16:31:58
【问题描述】:
我有父包,其中我有用于计数平面文件的 foreach 循环,并在其中我一个一个地处理每个文件,同时调用(执行包任务)我有序列容器的子包。在子包序列容器中,我有两个流程任务 -one 用于从导入模式表中删除数据,并将平面文件中的所有数据导入其中,由父包传递。 -second 是将新的和更新的行从导入模式移动到相关的暂存模式表。
现在我为父控制流设置“必需”事务属性,而其中的所有其他组件都“支持”。 并为子控制流设置“支持”事务属性,并为其中的所有组件设置相同的事务属性。因此,当我执行父包时,它卡在子包中的第二个流程任务上。
如果任何包中发生任何故障或错误,我想回滚所有事务。
请提供任何帮助。
【问题讨论】:
-
您是在询问您是否正确配置了事务以便在发生故障时启用回滚,或者您是在说您有一个问题,即进程“卡在”第二个流程任务上?
-
我尝试了这种方法来回滚包中的所有事务,而我却陷入其中。但如果你向我推荐另一种方法,我可以考虑。
-
听起来您已经正确配置了软件包并且您正在运行 MSDTC 服务。但我不清楚卡住的部分是什么?您是否希望能够终止进程并仍然以某种方式回滚,即使从技术上讲没有发生错误?
-
实际上,如果任何包中发生任何故障,我想回滚所有事务,因此我尝试配置两个包的事务属性,以便我可以回滚所有事务,但是当我设置这些属性时,我陷入了困境子包的第二个流程任务。因此,如果您有任何其他策略或解决方案,请告诉我。
-
是的,没有发生错误或失败,但它卡在子包的第二个流程任务中(在验证阶段开始)。
标签: sql-server ssis transactions parent-child