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

时间:2009-03-23 17:22:23

标签: ssis msdtc

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

  

SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x8004D00A。   COM错误对象信息可用。来源:“[Some Package Name]”错误代码:   0x8004D00A描述:“SSIS运行时未能登记OLE DB连接   在分布式事务中,错误0x8004D00A“无法在事务中登记。”

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

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

此时感激不尽的建议!

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

1 个答案:

答案 0 :(得分:4)

我们最终得到了答案 - 控制流中有两个独立的任务正在建立与同一数据库的连接。很显然,某些地方会出现一些失败的竞争状况。添加优先约束以强制任务串行执行会使问题消失。