我们计划不在MSIS中使用MSDTC进行事务管理,而是希望使用Begin transaction和commit transaction来使用本地trsnactions。从设计的角度来看,除了一个问题外似乎还可以。当SSIS包在任何任务中失败时,我们有一个错误事件处理程序,它将记录插入到错误表中。所以现在发生的事情是当SSIS回滚事务时它也回滚了错误处理例程。但我不确定如何能够精确地控制这一点,因为嵌套事务不会起作用,因为我在程序包执行开始时启动事务。
有什么想法吗?
答案 0 :(得分:0)
这是一个article on MSDN,它解释了如何在TRANSACTION COMMITT中使用支持错误处理的TRY-CATCH块。
关于嵌套事务的注释,它们实际上并不存在于SQL Server中。请参阅此blog post from Paul Randal.
答案 1 :(得分:0)
我切换到MSDTC来处理SSIS中的这些事务和错误处理。这种新方法非常简洁,只需将SSIS中的相关流程标记为txn是否需要,您就完成了。我将错误处理例程标记为'txn not supported',因为我不希望它在出现错误时回滚。除了我们案例中的基础设施开销之外,现在一切看起来都很好,因为我们正在将解决方案捆绑到各个客户工作站。
非常感谢