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

发布于 2024-08-04 14:36:19 字数 361 浏览 7 评论 0原文

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

错误:SSIS 运行时未能 启动分布式事务到期 错误 0x8004D01B“交易 经理没空。”。DTC 交易未能开始。这 可能会发生,因为 MSDTC 服务 没有运行。

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

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

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

While creating an SSIS package for SQL Server 2008 i run into the following error:

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.

I'm creating and running the package locally on my machine but the database is on a server, running Windows Server 2008, which is not in the domain.

I have made sure that the DTC service is started both locally and on the server, and I have added the Firewall exceptions that are predefined in the Windows Vista firewall.

Why does the SSIS Runtime fail to start the distributed transaction?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

空城缀染半城烟沙 2024-08-11 14:36:19

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

启动 MS DTC

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

I had the same problem, however, MS DTC was not running on my machine. To turn on the Transaction Coordinator I had to do the following:

To start MS DTC

  1. To open Services, on the Start menu, click Control Panel.
  2. In Control Panel, click Administrative Tools.
  3. In Administrative Tools, click Services. In the details pane, click
    Distributed Transaction Coordinator in the list of services.
  4. On the Action menu, click Start.
橪书 2024-08-11 14:36:19

在这里检查我对此问题的解决方案 [ http://faiz.kera.la/2009/08/26/ssis-transaction-enabled-tasks-fail-due-to-msdtc ]

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

编辑:链接已失效。链接的原文似乎是:

在我当前的项目中,我们团队中有多个 SSIS 开发人员,我们都共享系统中的数据库服务器实例。昨天,当一位队友尝试在 SSIS 中实现事务时,我们遇到了一个问题。尽管该包在数据库所在的系统中运行顺利,但在其他计算机上失败了。抛出的错误消息是,

SSIS 运行时未能在某个进程中登记 OLE DB 连接。
分布式事务,错误 0x8004D00E “该事务有
已经隐式或显式提交或中止”

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

屏幕截图

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”

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

椵侞 2024-08-11 14:36:19

要在 Windows 11 上启动分布式事务协调器服务,请按照下列步骤操作:

打开服务:

单击“开始”按钮或按 Windows 键。
在搜索栏中输入服务。
单击搜索结果中显示的服务应用程序。
找到分布式事务协调器:

在“服务”窗口中,向下滚动以查找分布式事务协调器。
启动服务:

右键单击“分布式事务协调器”。
从上下文菜单中选择开始。

To start the Distributed Transaction Coordinator service on Windows 11, follow these steps:

Open Services:

Click on the Start button or press the Windows key.
Type Services in the search bar.
Click on the Services app that appears in the search results.
Locate Distributed Transaction Coordinator:

In the Services window, scroll down to find Distributed Transaction Coordinator.
Start the Service:

Right-click on Distributed Transaction Coordinator.
Select Start from the context menu.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文