首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于分布式事务的SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER

用于分布式事务的SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER
EN

Stack Overflow用户
提问于 2017-08-09 15:03:47
回答 2查看 1.2K关注 0票数 2

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

DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.错误: SSIS错误代码AcquireConnection方法调用连接管理器"TargetDb“失败,错误代码为0xC0202009。在此之前可能会发布错误消息,并提供有关AcquireConnection方法调用失败的更多信息。

如果我删除该容器的事务,它就能工作。我已正确设置了所有分布式事务设置。我在堆栈溢出上经历了许多链接,但没有对我有效。请提出解决办法。

我还通过在本地机器上恢复两个db来尝试这个过程。它成功地处理了事务。这个包裹没什么问题。

EN

回答 2

Stack Overflow用户

发布于 2017-08-09 16:23:11

为了在ssis中使用事务,需要打开分布式事务协调器。另一种方法是在执行sql任务和在连接属性中使用begin,在控制流中设置retainsameconnection = True,之后需要在事务中的所有dft任务,最后一个任务将是另一个带有commit事务的执行sql任务。按照下面的链接在分布式事务上使用没有开关的事务- https://www.mssqltips.com/sqlservertip/3072/sql-server-integration-services-ssis-transactions-without-msdtc/

票数 2
EN

Stack Overflow用户

发布于 2017-08-09 16:33:30

Azure不能参与与本地SQL服务器AFAIK的事务。

限制当前适用于SQL中弹性数据库事务的限制如下:

  • 仅支持SQL DB中跨数据库的事务。SQL DB之外的其他X/Open资源提供者和数据库不能参与弹性数据库事务。这意味着弹性数据库事务不能跨本地SQL Server和Azure SQL数据库。对于房地内的分布式事务,请继续使用MSDTC。
  • 只支持来自.NET应用程序的客户端协调事务。服务器端对T(如BEGIN分布式事务)的支持已经计划好了,但还没有实现.
  • 不支持跨WCF服务的事务。例如,您有一个执行事务的WCF服务方法。将调用封装在事务范围内将作为System.ServiceModel.ProtocolException失败。

有关分布式事务和Azure的完整讨论,请参见这是微软的文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45594318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档