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,并且现有系统将 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. “安全设置”下,选择“XA 事务检查”框以启用此支持。

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

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

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

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

References