我正在尝试在序列容器中设置从 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/