5

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

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

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

我们可以从日志中看到事务是在正确的时间点开始的——但是几秒钟后,我们得到了失败。

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

SQL Server 详细信息:在 Server 2003 64 位企业版 (3790) 上运行的 64 位企业版 (v9.0.3233)。这些服务器运行 E5345 Xeons,具有 6GB 的 RAM。

4

1 回答 1

4

我们最终找到了答案——控制流中有两个独立的任务正在建立到同一个数据库的连接。显然,某处存在某种竞争条件使其失败。添加优先约束以强制任务按顺序执行使问题消失。

于 2009-07-01T08:56:49.223 回答