13

在为 SQL Server 2008 创建 SSIS 包时,我遇到以下错误:

错误:由于错误 0x8004D01B“事务管理器不可用”,SSIS 运行时无法启动分布式事务。DTC 事务无法启动。这可能是因为 MSDTC 服务未运行。

我正在我的机器上本地创建和运行包,但数据库位于运行 Windows Server 2008 的服务器上,该服务器不在域中。

我已确保 DTC 服务在本地和服务器上都启动,并且添加了在 Windows Vista 防火墙中预定义的防火墙例外。

为什么 SSIS 运行时无法启动分布式事务?

4

2 回答 2

11

我遇到了同样的问题,但是 MS DTC 没有在我的机器上运行。要打开事务协调器,我必须执行以下操作:

启动 MS DTC

  1. 要打开服务,请在开始菜单上单击控制面板。
  2. 在控制面板中,单击管理工具。
  3. 在管理工具中,单击服务。在详细信息窗格中,单击 Distributed Transaction Coordinator服务列表。
  4. 在操作菜单上,单击开始。
于 2017-02-07T21:41:37.853 回答
6

Check my solution to this problem here [ http://faiz.kera.la/2009/08/26/ssis-transaction-enabled-tasks-fail-due-to-msdtc ]

This is a common scenario if your machines are not in a domain or running Windows XP.

Edit: the link is dead. The original text from the link seems to be:

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”</p>

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.

Screen shot

于 2009-09-15T17:16:50.520 回答