我有一个暂停执行的数据流任务.
流程很简单,对不同的表进行两次查询(两者都有几个连接),然后通过公共id对输出进行排序和合并,为所有记录添加静态列,将行计数保存在用户变量中以供日后使用使用并最终插入到另一个DB上的表中.我们正在使用OLE DB源和目标.源是MSSQL 2000,目标是MSSQL 2012
症状:
解决方案失败:
额外的一点:
我真的希望有人可以帮助我.我是SSIS的新手,这是我第一次使用它.我通常与Pentaho合作开发我的ETL,但客户需要在SSIS上实施解决方案.我已经和这个问题争斗了好几天了,而且我已经开始没有想法来解决这个问题了.
当通过命令行运行时,它也会卡住,我得到以下输出:
Progress: 2013-03-19 14:36:26.21
Source: Load Sandbox Table
Validating: 0% complete
End Progress
Progress: 2013-03-19 14:36:26.21
Source: Load Sandbox Table
Validating: 12% complete
End Progress
Progress: 2013-03-19 14:36:26.22
Source: Load Sandbox Table
Validating: 25% …Run Code Online (Sandbox Code Playgroud) 如果复制失败,我需要将数据从DB"source"复制到db"destination",我需要回滚"destination".这两个连接在连接管理器中定义为OLE DB.
这是我目前无法正常工作的尝试.我尝试使用内置的事务管理(将任务事务设置为必需),但这只是无法连接到"目标".
目的地已将"RetainSameConnection"设置为true,而对于"source",这是没有特殊原因的.
我还设置了"MaxConcurrentExecutables"= 1来阻止SSIS执行我的回滚作为第一件事.
序列中的每个任务都设置为"隔离级别"= ReadUncommitted和"transactionOption"=支持.
"失败的脚本"是一个总是失败的脚本,以便我测试事务是否正常.

任务"begin tran"的代码是"BEGIN TRANSACTION",连接设置为"destination"
任务"rollback tran"的代码是"rollback transaction",连接设置为"destination"
回滚失败,"回滚事务请求没有相应的'BEGIN TRANSACTION'"