在SSIS包中创建事务时出现问题


12

我正在处理需要使用事务的程序包,但当前出现以下错误:

SSIS package "CATS-Package.dtsx" starting.
Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase is beginning.
Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001401A at CATS-Package: 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.
SSIS package "CATS-Package.dtsx" finished: Failure.

到目前为止,这是我所知道的:

  • 2012套餐
  • 我正在包部署中运行
  • TransactionOption属性设置为Required
  • 针对2008 R2实例运行
  • 我可以在实例上手动创建一个分布式事务,并根据事件查看器MSDTC正在运行。
  • MSDTC具有以下设置

在此处输入图片说明

任何人都可以指出寻找其他信息的方向。

编辑:我读过的步骤之一是说在运行软件包的本地计算机上以及在拥有实例的服务器上运行DTC。一旦这样做,我就会收到一个新错误:

Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001402C at CATS-Package, Connection manager "connectionName": The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D024 "The transaction manager has disabled its support for remote/network transactions.".
Error: 0xC0202009 at CATS-Package, Connection manager "connectionName": SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x8004D024.
Error: 0xC00291EC at Execute SQL Task - Max Product ID, Execute SQL Task: Failed to acquire connection "connectionName". Connection may not be configured correctly or you may not have the right permissions on this connection.

重要的The transaction manager has disabled its support for remote/network transactions. 是我是否在权限中缺少某些内容?注意:Allow Remote Clients也已检查。

我已经看到提到了MSDTC ping(包括下面的评论),但是当我查看它时,我不太确定该怎么做。


1
:找到更详细的信息,实际上显示了DTC和SSIS的一些故障排除步骤richardlees.blogspot.com/2010/01/...

1
您使用什么方法在SSIS包中设置交易?
赞恩(Zane)2015年

1
检查应用程序事件日志从MSDTC任何错误,让MSDTC平support.microsoft.com/en-us/kb/918331
Spörri

@Spörri我在客户端或服务器上的事件日志中什么都没有看到。我看过MSDTC,但是(乍一看)我的头顶上。
肯尼斯·费舍尔

1
@KennethFisher我只是在Powershell测试中表示服务器名,如果您获得了信息,则RPC已打开。
鲍勃·克里姆斯

Answers:


10

我解决了问题。我在几个地方都读过,DTC需要在源计算机以及目标计算机上启动。因此在我的位置,我的工作站以及实例所在的服务器。

一旦打开MSDTC,我会收到一个新错误:

Information: 0x4001100A at CATS-Package: Starting distributed transaction for this container.
Error: 0xC001402C at CATS-Package, Connection manager "connectionName": The SSIS Runtime has failed to enlist the OLE DB connection in a distributed transaction with error 0x8004D024 "The transaction manager has disabled its support for remote/network transactions.".
Error: 0xC0202009 at CATS-Package, Connection manager "connectionName": SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x8004D024.
Error: 0xC00291EC at Execute SQL Task - Max Product ID, Execute SQL Task: Failed to acquire connection "connectionName". Connection may not be configured correctly or you may not have the right permissions on this connection.

重要的是 The transaction manager has disabled its support for remote/network transactions.

在那里,我进行了进一步的研究,并最终意识到,我尚未将本地DTC配置为允许网络访问等。将其配置为允许网络DTC访问,“允许远程连接”和“允许输出”连接后,一切都可以顺利进行。

在此处输入图片说明

我不确定这是否是本地连接所需的最低权限,但似乎是。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.