Error: The SSIS Runtime has Failed to
start the distributed transaction due
to error 0x8004D01B “The Transaction
Manager is not available.”. The DTC
transaction Failed to start. This
could occur because the MSDTC Service
is not running.
我正在本机上创建并运行程序包,但数据库位于运行Windows Server 2008(不在域中)的服务器上.
我确保DTC服务在本地和服务器上启动,并且我添加了在Windows Vista防火墙中预定义的防火墙例外.
为什么SSIS Runtime无法启动分布式事务?
解决方法
如果您的计算机不在域中或运行Windows XP,这是一种常见的情况.
In my current project we have multiple SSIS developers in team and we all were sharing the database server instance in my system. We faced an issue yesterday when a team mate was trying to implement transactions in SSIS. The package fails in other machines although it is running smooth in my system where the database resides. The error message thrown out was,
The SSIS Runtime has Failed to enlist the OLE DB connection in a
distributed transaction with error 0x8004D00E “The transaction has
already been implicitly or explicitly committed or aborted”Soon we realized that this is something related to Microsoft Distributed Transaction Coordinator (MsDTC). We did some search and got a tool called “Dtcping.exe” which will check the health status of MsDTC processes in different machines. The tool reported an error “Access denied”,hinting some security issue with in the MsDTC. But we were not lucky even after a couple of hours of Googling. Then I decided to lean the security settings for MsDTC and I found that all network related connectivity is disabled by default. I learned that authentication settings can cause trouble as our machines were running Windows XP and as they were in a work group (we have a strange network configuration in my organization). I changed to “No Authentication required” for MsDTC instances in all machines and it worked! To change the Security Configuration for MsDTC,go to Control Panel >> Administrative Tools >> Component Services >> Computers >> Right click My Computer and then click Properties >> Click the MSDTC tab >> Click Security Configuration. Below is a screen shot of the settings that I used,but I do not recommend this configuration for all cases as I am not aware of the impact it can have on securiy.