.net - 分布式事务的 SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER

标签 .net sql-server ssis distributed-transactions msdtc

我正在尝试在序列容器中设置从 SourceDb(存在于我的本地计算机上)到 TargetDb(存在于 azure 上并且可以从 SSMS 访问)的数据流任务。 每当我运行带有必需事务的包时,我都会收到以下错误。

错误:SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“TargetDb”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。在此之前可能会发布错误消息,其中包含有关 AcquireConnection 方法调用失败原因的更多信息。

如果我删除该容器的事务,它就会起作用。我已正确设置所有分布式事务设置。我浏览了许多有关堆栈溢出的链接,但没有任何效果对我有用。请提出解决方案。

我还通过在本地计算机上恢复两个数据库来尝试此过程。它可以成功地处理事务。包裹没有任何问题。

最佳答案

为了在 ssis 中使用事务,您需要打开分布式事务协调器。另一种方法是在执行sql任务中使用开始事务,并在控制流中的连接属性中设置retainsameconnection = True,所有需要在事务中的dft任务将在此之后执行,最后一个任务将是另一个带有提交的执行sql任务交易。 请按照以下链接使用事务而无需切换分布式事务 - https://www.mssqltips.com/sqlservertip/3072/sql-server-integration-services-ssis-transactions-without-msdtc/

关于.net - 分布式事务的 SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45594318/

相关文章:

c# - 如何在 WPF 应用程序页面而不是窗口中禁用最大化按钮

c# - .NET 模块与程序集

c# - 如何创建 C# 映射类到 csvhelper

mysql - 相当于 sql server 中表 information_schema.tables 中的 MYSQL AUTO_INCREMENT 列

sql-server - 从日期时间转换为 INT

c# - 将字符串转换为 TitleCase、SentenceCase、UpperCase 和 LowerCase,但如果单词在 "quotation marks"内则忽略大小写

sql-server - 禁用 Sql 2008 缓存?

sql-server - 在 Sql Server 2005 中实现最后修改列的最佳方法?

sql - SSIS 从 Excel 导入错误数量的数据

sql-server - ADO NET 目标无法获取连接,并显示以下错误消息 : "Login failed for user