在 SQL Server 2000 中对链接服务器运行分布式事务在您安装 Windows Server 2003 或 Windows XP Service Pack 2 时可能收到 7391 错误信息
注意:这篇文章是由无人工介入的自动的机器翻译系统翻译完成。这些文章是微软为不懂英语的用户提供的, 以使他们能够理解这些文章的内容。微软不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的使用所引起的任何直接的, 或间接的可能的问题负责。
文章编号 | : | 839279 |
最后修改 | : | 2005年7月15日 |
修订 | : | 3.0 |
要点 本文包含有关如何修改注册表。 一定要修改它之前备份注册表。 确保您知道在发生问题时如何还原注册表。 有关如何备份、 还原, 和修改注册表, 请单击下列文章编号以查看 Microsoft 知识库中相应
256986 (http://support.microsoft.com/kb/256986/) 对 MicrosoftWindows 注册表说明
症状
当运行分布式事务对 ANSI,并在从 SQL Server, 您可能收到错误消息, 它类似于以下:
服务器: 消息 7391, 级别 16, 状态 1, 行 1
因为 OLEDB 提供程序 ' SQLOLEDB ' 无法启动分布式事务不能执行该操作。 [: 无法指定事务协调中登记新事务 / OLE DB 提供程序返回消息 ] [ / OLE DB 提供程序'SQLOLEDB'ITransactionJoin::JoinTransaction 返回 0x8004d00a ] OLEDB 错误跟踪。
下列条件之一为真时可能会出现此问题:
服务器: 消息 7391, 级别 16, 状态 1, 行 1
因为 OLEDB 提供程序 ' SQLOLEDB ' 无法启动分布式事务不能执行该操作。 [: 无法指定事务协调中登记新事务 / OLE DB 提供程序返回消息 ] [ / OLE DB 提供程序'SQLOLEDB'ITransactionJoin::JoinTransaction 返回 0x8004d00a ] OLEDB 错误跟踪。
下列条件之一为真时可能会出现此问题:
• | 启动分布式事务计算机上安装 Microsoft Windows Server 2003 或 Microsoft Windows XP Service Pack 2 (SP 2)。 |
• | Microsoft Windows Server 2003 or Microsoft Windows XP SP2 is installed on the remote computer that is running Microsoft SQL Server 2000, and that computer is linked to the computer that initiates the distributed transaction. |
原因
此问题是由一个或多个以下原因:
• | 对于网络事务禁用 Microsoft 分布式事务处理协调器 (MSDTC)。 |
• | 计算机上启用 Windows 防火墙。 默认情况下, Windows 防火墙阻止 Microsoft 分布式事务处理协调器 (MSDTC) 程序。 注意 即使当关闭 Windows 防火墙可能出现此问题。 |
替代方法
警告 如果正确修改注册表通过注册表编辑器或通过其他方法可能发生 Serious 问题。 这些问题可能需要重新安装操作系统。 Microsoft 不能保证能够解决这些问题而。 修改注册表需要您自担风险。
要解决此问题, 按照这些步骤在计算机上 Windows Server 2003 或者 WindowsXPSP 上安装:
要解决此问题, 按照这些步骤在计算机上 Windows Server 2003 或者 WindowsXPSP 上安装:
1. | 确保 MSDTC 服务帐户 登录为 " 是 NetworkService 帐户。 要这样做, 请按照下列步骤操作:
| ||||||||||||||||||||||||||
2. | 启用 MSDTC 以允许网络事务。 要这样做, 请按照下列步骤操作:
| ||||||||||||||||||||||||||
3. | 配置 Windows 防火墙为包含 MSDTC 程序并包括作为例外端口 135。 要这样做, 请按照下列步骤操作:
|
状态
Microsoft 已确认这是 " 适用于 " 一节中列出 Microsoft 产品中存在问题。
更多信息
重现行为步骤
1. | 登录到了 Windows Server 2003 或 Windows XP SP 2 安装计算机。 |
2. | 启动查询分析器。 |
3. | 添加运行 Microsoft SQL Server 2000 作为链接服务器远程计算机。 要执行此, 查询分析器中运行下列 Transact-SQL 语句:
注意 用作为链接服务器必须配置计算机名称是替换 remote_server 。 |
4. | 此计算机和远程计算机之间运行分布式事务。 要执行此, 查询分析器中运行下列 Transact-SQL 语句: 可能会收到 " 症状 " 部分中所述错误信息。 |