在 SQL Server 和适配器客户端上配置 MSDTC

使用 SQL 适配器 (通过 BizTalk Server、WCF 服务模型或 WCF 通道模型) 对SQL Server执行的操作可以在事务范围内执行。 如果客户端程序将多个事务资源作为同一事务的一部分,则事务将提升为 MSDTC 事务。 若要使适配器能够在 MSDTC 事务范围内执行操作,必须在运行 SQL 适配器和SQL Server的计算机上配置 MSDTC。 此外,必须将 MSDTC 添加到 Windows 防火墙的例外列表。 本部分介绍如何在运行适配器客户端和SQL Server的计算机上执行这些任务。

注意

  • 使用 BizTalk Server 对SQL Server执行操作始终涉及两个资源:连接到 SQL Server 的适配器和驻留在 SQL Server 上的 BizTalk 消息框。 因此,使用 BizTalk Server 执行的所有操作都在 MSDTC 事务的范围内执行。 因此,若要将 SQL 适配器与 BizTalk Server 一起使用,必须始终启用 MSDTC。

  • 对于适配器客户端不向SQL Server数据库写入任何数据的操作(例如 Select 操作),你可能不希望在事务中执行操作会产生额外的开销。 在这种情况下,可以通过将 UseAmbientTransaction 绑定属性设置为 false,将 SQL 适配器配置为在没有事务上下文的情况下执行操作。 有关绑定属性的详细信息,请参阅阅读有关 BizTalk 适配器的 SQL Server 适配器绑定属性。 在这种情况下,也不需要配置 MSDTC。

配置 MSDTC

  1. 打开 组件服务

    或者,在“服务器管理器”中,选择“工具”,然后选择“组件服务”。

  2. 依次展开 “组件服务”、“ 计算机”、“ 我的电脑”、“ 分布式事务处理协调器”,右键单击“ 本地 DTC”,然后选择“ 属性”。

  3. 选择“ 安全 ”选项卡。在此选项卡中,选择以下所有选项:

    • 网络 DTC 访问
    • 允许远程客户端
    • 允许入站
    • 允许出站
    • 不要求进行身份验证
  4. 选择“确定”,保存所做更改。

  5. 如果系统提示重启 MSDTC 服务,请选择“ ”。 重新启动 MSDTC 服务后,关闭属性和组件服务 MMC。

将 MSDTC 添加到 Windows 防火墙例外列表

提示

防火墙中可能已允许 Microsoft Distributed Tansaction 协调器 (MSDTC) 。 如果是这样,它将作为入站规则列出。 如果未列出,请使用此部分来允许 MSDTC。

  1. 打开 Windows 防火墙,然后选择左侧的“高级设置”。

    或者,在“服务器管理器,选择“工具”,然后选择“高级安全 Windows 防火墙”。

  2. 右键单击“ 入站规则”,然后选择“ 新建规则”。

  3. 在向导中:

    1. 选择“ 程序”,然后选择“ 下一步”。
    2. 程序路径 设置为 %SystemRoot%\system32\msdtc.exe,然后选择“ 下一步”。
    3. 允许连接,然后选择“ 下一步”。
    4. 选择 “域”,然后选择“ 下一步”。
    5. 输入任何名称(如 MSDTC for Oracle EBS),然后选择“ 完成”。
  4. 完成向导并关闭 Windows 防火墙。

另请参阅

开发 SQL 应用程序