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

时间:2009-09-15 12:09:03

标签: sql-server ssis msdtc

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

  

错误:SSIS运行时失败   启动分布式事务到期   错误0x8004D01B“交易   经理不在。“。DTC   交易未能启动。这个   可能因为MSDTC服务而发生   没有跑。

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

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

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

3 个答案:

答案 0 :(得分:6)

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

启动MS DTC

  1. 要打开“服务”,请在“开始”菜单上单击“控制面板”。
  2. 在“控制面板”中,单击“管理工具”。
  3. 在“管理工具”中,单击“服务”。在详细信息窗格中,单击 服务列表中的Distributed Transaction Coordinator
  4. 在“操作”菜单上,单击“开始”。

答案 1 :(得分:5)

在此处[http://faiz.kera.la/2009/08/26/ssis-transaction-enabled-tasks-fail-due-to-msdtc]

检查我的解决方案

如果您的计算机不在域中或运行Windows XP,则这是常见的情况。

编辑:链接已死。链接中的原始文本似乎是:

  

在我目前的项目中,我们团队中有多个SSIS开发人员,我们都在系统中共享数据库服务器实例。我们昨天遇到了一个问题,当时一个队友试图在SSIS中实施交易。虽然它在我的数据库所在的系统中运行顺畅,但程序包在其他计算机中失败。抛出的错误信息是,

     

SSIS运行时无法在a中登记OLE DB连接   分布式事务,错误0x8004D00E“事务有   已被隐式或明确地提交或中止“

     

很快我们意识到这与微软分布式事务协调器(MsDTC)有关。我们做了一些搜索,得到了一个名为“Dtcping.exe”的工具,它将检查不同机器中MsDTC进程的健康状态。该工具报告了一个错误“访问被拒绝”,暗示了MsDTC中的一些安全问题。但即使经过几个小时的谷歌搜索,我们也没有幸运。然后我决定使用MsDTC的安全设置,我发现默认情况下禁用所有与网络相关的连接。我了解到,身份验证设置可能会导致问题,因为我们的计算机运行的是Windows XP,而且它们位于工作组中(我们的组织中有一个奇怪的网络配置)。我在所有机器中为MsDTC实例更改为“无需身份验证”,并且它有效!要更改MsDTC的安全配置,请转到控制面板>>管理工具>>组件服务>>电脑>>右键单击“我的电脑”,然后单击“属性”>>点击MSDTC标签>>单击安全配置。下面是我使用的设置的屏幕截图,但我不建议所有情况下的此配置,因为我不知道它可能对securiy产生的影响。

     

Screen shot

答案 2 :(得分:-3)

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