XA 事务支持需要注册表项

从 Windows Server 2003 开始,Microsoft 分布式事务处理协调器 (MS DTC) 要求您为计划使用的所有 XA DLL 创建注册表值。 本文提供修改注册表的步骤。

原始产品版本:  WindowsServer 2003
原始 KB 编号:   817066

摘要

从 Windows Server 2003 开始,MS DTC 要求您为计划使用的所有 XA DLL 创建注册表值。 此要求已添加到 Windows Server 2003,以帮助你最大程度地降低与 MS DTC 进程中使用第三方 XA DLL 相关的风险。 若要在使用 XA 事务时保留相同的功能,必须在 XA DLL 项中为计划使用的每个 XA DLL 添加注册表值。 本文介绍这些注册表值。

例如,将现有系统升级到 Windows Server 2003,并且现有系统将 MS DTC 用于第三方 XA DLL 时,将禁用对 XA 事务的支持,直到创建这些必需的注册表值。 此外,如果稍后安装提供 XA DLL 以支持 XA 事务的第三方产品,则必须执行以下操作之一:

  • 手动创建这些注册表值
  • 验证第三方安装程序是否创建这些注册表值

启用对 XA 事务的支持

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了加强保护,应先备份注册表,再进行修改。 如果出现问题,可以还原注册表。 若要详细了解如何备份和还原注册表,请参阅如何在 Windows 中备份和还原注册表

MS DTC 使用用户指定的 DLL 时,会出现安全风险。 这些 DLL 直接加载到 MS DTC 进程中。 MS DTC 使用这些 DLL 与 XA 合作伙伴的 (TM) 通信。 此方案可能会使资源管理器 (RM) 发生严重的数据损坏。 如果恶意或缺陷 XA DLL 未验证分布式事务正确提交或中止,此方案还允许拒绝服务攻击。 此外,如果恶意或不良的 XA DLL 包含未增强安全性的代码,攻击者可能会利用此漏洞导致拒绝服务攻击。

为了帮助防止此安全风险,Windows Server 2003 在升级到 Windows Server 2003 时关闭所有 XA 事务。 通过关闭 XA 事务,Windows Server 2003 可帮助保护 MS DTC 免受拒绝服务攻击。

你可能必须启用对 XA 事务的支持。 为此,请按照下列步骤操作:

  1. 打开 组件服务
  2. 展开树视图,找到要打开对 XA 事务支持的计算机 (例如,"我的计算机 ") 。
  3. 右键单击计算机名称,然后单击"属性 "。
  4. 单击 "MSDTC" 选项卡,然后单击"安全配置"。
  5. Under Security 设置, select the check box for XA Transactions to turn on this support.

WindowsServer 2003 提供了一个注册表项,用于指定将使用的 XA DLL。 升级到 Windows Server 2003 时,可以处理 XA 事务的方式与在早期版本的 Microsoft Windows Server 中一样。

为此,在下面的注册表子项下创建一个名为-value 的注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL

在注册表的命名值中 ,Name 可以是 XA DLL (例如,dllname.dll) ,尽管不需要使用此命名约定。 此外,在此命名值中 ,Type 为 String (REG_SZ) ,值是包含 DLL (的完整路径名) 文件名。

为计划使用的每个 XA DLL 文件创建一个条目。 此外,如果要在群集上配置 MS DTC,则必须在群集中的每个节点上创建这些注册表项。

参考