间歇性未能在DTC交易中登记SSIS包

Dav*_*e W 5 msdtc ssis

我们的包随机失败,并显示以下错误消息:

SSIS错误代码DTS_E_OLEDBERROR.发生OLE DB错误.错误代码:0x8004D00A.COM错误对象信息可用.源:"[某些程序包名称]"错误代码:0x8004D00A说明:"SSIS运行时未能在分布式事务中登记OLE DB连接,错误0x8004D00A"无法在事务中登记."

这不会一直发生,并且重新运行包通常会成功,因此我认为这不是DTC或网络配置问题.无论我们是在Studio中还是通过SQL代理作业运行包,都会发生这种情况.在后一种情况下,程序包在它尝试连接的同一SQL Server实例上运行.

我们可以从日志中看到事务正在正确的位置启动 - 但几秒钟之后,我们就会失败.

在这一点上感激地收到任何建议!

SQL Server详细信息:在Server 2003 64位Enterprise(3790)上运行的64位企业版(v9.0.3233).这些服务器运行的是E5345 Xeons,内存为6GB.

Dav*_*e W 4

我们最终找到了答案 - 控制流中有两个独立的任务正在建立与同一数据库的连接。显然,某处存在某种竞争条件导致其失败。添加优先级约束以强制任务串行执行可以解决问题。