SSIS中的TransactionOption

时间:2011-07-04 06:48:27

标签: ssis

我创建了一个SSIS包。如果包失败,我需要将Transaction应用于此包以进行回滚。我发现的是一个属性“TransactionOption”,应该给出“Required”。我对吗 ?我已将包的TransactionOption设置为“必需”但是我执行时包失败。我应该做什么步骤来设置TransactionOption“必需”?

详细说明,我的包中包含4个控制任务。其中之一是数据流任务,包含查找任务。

我收到以下错误 “[执行SQL任务]错误:无法获取连接”SQLConnectionMgr1“。可能未正确配置连接,或者您可能没有此连接上的权限。”

当我将TransactionOption设置为“Supported”时,包会成功运行。

3 个答案:

答案 0 :(得分:4)

enter image description here

  1. 创建2个“OLE DB连接管理器”,两者都连接到同一个 数据库。关于“OLE DB连接”之一的属性 经理“将'RetainSameConnection'属性设置为true。
  2. 然后创建3“执行SQL任务”并将它们与“OLE DB”连接 连接管理器“是'RetainSameConnection'属性设置 真实。
  3. 在各自的执行SQL任务

    上添加以下语句
    • BEGIN TRANSACTION
    • COMMIT TRANSACTION
    • ROLLBACK TRANSACTION

答案 1 :(得分:2)

听起来您可能没有适当的权限来使用在SSIS中使用事务所需的分布式事务处理协调器(MSDTC)服务。

有关更多信息,请参阅有关交易的这篇文章:http://www.mssqltips.com/tip.asp?tip=1585

此外,您可能需要更多地了解MSDTC如何与SSIS相关联以解决您的问题。

答案 2 :(得分:1)

要启用Trancaction,您需要检查以下precquiste

1,分布式事务协调器(MSDTC)服务应该在机器中启动,如果是本地机器的话。

2,如果您使用的是客户端(服务器计算机 - >用户计算机),则在两台计算机上启用MSDTC,并在组件服务下使用NETWORK DTC访问(允许远程客户端,允许入站,允许出站)安全选项 - - >计算机属性 - > MSDTC标签 - >安全选项

3,有时任何一台机器上的防火墙或两者都可以阻止网络DTC,因此您需要禁用/卸载。

错误: 无法获取连接管理器

解决方案: 如果您是本地计算机的用户,请检查步骤1,如果您是客户端用户检查步骤2和3

然后asusual 根据需要更改包级别或容器级别属性中所需的Trancaction Option并进行检查。