zoukankan      html  css  js  c++  java
  • 在 SQL Server 2000 中对链接服务器运行分布式事务在您安装 Windows Server 2003 或 Windows XP Service Pack 2 时可能收到 7391 错误信息

    在 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 错误跟踪。


    下列条件之一为真时可能会出现此问题:
    启动分布式事务计算机上安装 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 上安装:
    1. 确保 MSDTC 服务帐户 登录为 " 是 NetworkService 帐户。 要这样做, 请按照下列步骤操作:
    a. 开始 , 依次 运行 。
    b. 在 运行 对话框中, 键入 Services.msc , 然后单击 确定 。
    c. 在 服务 窗口, 找到 DistributedTransactionCoordinator 服务 " 名称 " 窗格中。
    d. 列, 登录为 " 下是否 登录为 " 帐户为 NetworkService 或 本地系统 。

    如果 登录为 " 帐户是 NetworkService , 转到步骤 2。 如果 登录为 " 帐户是 本地系统 帐户, 继续步骤。
    e. 开始 , 依次 运行 。
    f. 在 运行 对话框中, 键入 cmd , 然后单击 确定 。
    g. 在命令提示符下, 键入 网络停止 MSDTC 来停止 MSDTC 服务。
    h. 在命令提示符下, 键入 Msdtc ûuninstall 要删除 MSDTC。
    i. 在命令提示符下, 键入要打开注册表编辑器 regedit 。
    j. 在注册表编辑器, 找到以下项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC注册表项。

    删除该项。
    k. 退出注册表编辑器。
    l. 在命令提示符下, 键入 Msdtc ûinstall 要安装 MSDTC。
    m. 在命令提示符下, 键入 Net 启动 MSDTC 来启动 MSDTC 服务。

    请注意, 为 NetworkService 帐户设置 登录为 " MSDTC 服务帐户。
    2. 启用 MSDTC 以允许网络事务。 要这样做, 请按照下列步骤操作:
    a. 开始 , 依次 运行 。
    b. 在 运行 对话框中, 键入 dcomcnfg.exe , 然后单击 确定 。
    c. 在 组件服务 窗口, 展开 组件服务 , 展开 计算机 , 然后然后展开 我的电脑 。
    d. 右键单击 本机 , 然后单击 属性 。
    e. 在 我的电脑属性 " 对话框中, 单击 MSDTC 选项卡上 安全配置 。
    f. 在 " 安全配置 对话框, 单击以选中 " 网络 DTC 访问 " 复选框。
    g. 要允许分布式事务在此计算机上运行从远程计算机, 请单击以选中 " 允许入站 复选框。
    h. 要允许要从此计算机, 远程计算机上运行分布式事务请单击以选中 " 允许出站 复选框。
    i. 在 事务管理通讯 组, 单击以选择 否验证必需 选项。
    j. 在 安全配置 对话框中, 单击 确定 。
    k. 在 我的电脑属性 " 对话框中, 单击 确定 。
    3. 配置 Windows 防火墙为包含 MSDTC 程序并包括作为例外端口 135。 要这样做, 请按照下列步骤操作:
    a. 开始 , 依次 运行 。
    b. 在 运行 对话框中, 键入 Firewall.cpl , 然后单击确定
    c. 在 控制面板 , 双击 Windows 防火墙 。
    d. 在 Windows 防火墙 对话框, 单击 例外 选项卡上 添加程序 。
    e. 对话框中 添加程序 , 单击 浏览 按钮, 并找到 Msdtc.exe 文件。 默认, 文件存储在安装驱动器 > < : \Windows\System32 文件夹。
    f. 在 添加程序 对话框中, 单击 确定 。
    g. 在 Windows 防火墙 对话框, 单击以选中 MSDTC 选项 程序和服务 列表中。
    h. 单击 " 例外 " 选项卡上 添加端口 。
    i. In the Add a Port dialog box, type 135 in the Port number text box, and then click to select the TCP option.
    j. In the Add a Port dialog box, type a name for the exception in the Name text box, and then click OK.
    k. In the Windows Firewall dialog box, select the name that you used for the exception in step j in the Programs and Services list, and then click OK.

    回到顶端

    状态

    Microsoft 已确认这是 " 适用于 " 一节中列出 Microsoft 产品中存在问题。

    回到顶端

    更多信息

    重现行为步骤

    1. 登录到了 Windows Server 2003 或 Windows XP SP 2 安装计算机。
    2. 启动查询分析器。
    3. 添加运行 Microsoft SQL Server 2000 作为链接服务器远程计算机。 要执行此, 查询分析器中运行下列 Transact-SQL 语句:
    EXEC sp_addlinkedserver  '<remote_server>',  N'SQL SERVER'
    GO

    注意 用作为链接服务器必须配置计算机名称是替换 remote_server
    4. 此计算机和远程计算机之间运行分布式事务。 要执行此, 查询分析器中运行下列 Transact-SQL 语句:
    SET xact_abort ON 
    GO
    USE  pubs
    GO
    BEGIN DISTRIBUTED TRANSACTION
    SELECT  *  FROM <remote_server>.pubs.dbo.authors
    COMMIT TRAN
    GO
    
    可能会收到 " 症状 " 部分中所述错误信息。

    回到顶端

    参考

    有关配置用于与 SQL Server 2000, 使用 Windows XP Service Pack 2 请单击下列文章编号以查看 Microsoft 知识库中相应:
    841249 (http://support.microsoft.com/kb/841249/) 如何配置用于与 SQLServer 使用 Windows XP Service Pack 2

    回到顶端

  • 相关阅读:
    linux 安装jdk
    linux 安装 Redis
    jvisualvm监控远程jvm的两种连接方式
    list转map(JDK8-Lambda表达式)
    循环删除list中的某一元素的三种方式
    SpringBoot-@ControllerAdvice 拦截异常并统一处理
    Spring-@ControllerAdvice 拦截异常并统一处理
    Tomcat系列
    thinkPHP5.1模型User设计
    uniapp后台api设计(微信user表)
  • 原文地址:https://www.cnblogs.com/huqingyu/p/760634.html
Copyright © 2011-2022 走看看