第一个。)
我有一个序列容器。它有 4 个不同的执行 sql 任务和 4 个不同的 DFT,其中数据插入到不同的表中。我想在包失败时使用或不使用 MSDTC 服务来实现事务,即,每个数据都应该在任何 DFT 失败或执行 SQL 任务时回滚。如何实施?当我尝试使用 MSDTC 服务实现时,我收到“OLEDB 连接”错误,并且没有 MSDTC 数据被插入,只有最后一个执行 Sql 任务被回滚。如何在 ssis 2017 上实现这一点?
第 2 次。)
当我通过将 ServerConnection RetainSameConnection的属性设置为 TRUE 来尝试不使用 MSDTC 并为开始事务和提交执行了另外两个执行 sql 任务时。我遇到了事件处理程序的问题,即我无法将错误记录到不同的表中。尝试操作时,回滚正在工作或事件处理程序。一旦发生错误,控件就会转到事件处理程序,然后回滚所有事情,包括事件处理程序中的任务
第三)
序列容器用于并行执行任务。因此,这 4 个任务中的特定任务失败了,只有那个特定任务回滚休息 SQL 任务是将数据插入表中。
提前致谢!!;-)