XA 事务支持的注册表项是必需的

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

原始产品版本:  Windows Server 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,并且现有系统使用具有第三方 XA Dll 的 MS DTC 时,在创建这些必需的注册表值之前,将禁用对 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. 在 "安全设置" 下,选中XA 事务对应的复选框以启用此支持。

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

为此,请在以下注册表子项下创建一个名为的注册表值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL

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

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

参考