Intermittent failure to enlist SSIS package in DTC transaction

女生的网名这么多〃 提交于 2019-12-06 03:56:12

问题


Our packages are randomly failing with the following error message:

SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x8004D00A. COM error object information is available. Source: "[Some Package Name]" error code: 0x8004D00A Description: "The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D00A "Unable to enlist in the transaction."

This doesn't happen all the time, and re-running the package often succeeds, so I don't think it's a DTC or network config problem. This happens whether or not we're running the package from within Studio or by a SQL Agent Job. In the latter case, the package is running on the same SQL Server instance that it is trying to connect to.

We can see from the logs that the transaction is being started at the correct point - but a couple of seconds later, we get the failure.

Any suggestions gratefully received at this point!

SQL Server Details: 64-bit Enterprise Edition (v9.0.3233) running on Server 2003 64-bit Enterprise (3790). The servers are running E5345 Xeons, with 6GB of RAM.


回答1:


We found the answer in the end - there were two independent tasks in the control flow that were establishing connections to the same database. Evidently there is some race condition somewhere that makes it fail. Adding a precedence constraint to force the tasks to be executed in series made the problem go away.



来源:https://stackoverflow.com/questions/674364/intermittent-failure-to-enlist-ssis-package-in-dtc-transaction

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!