2024年3月28日发(作者:)
SQL Server 分布式数据库MSDTC 分布式事务错误和解决方法
一、问题现象
假如分布式事务的客户端和服务器端(可能N个)不在同一台服务器上,如分别为应用
程序服务器 和 数据库服务器,经常会出现一下错误:
① 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下
SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序,
error: 40 - 无法打开到 SQL Server 的连接)。
② 事务已被隐式或显式提交,或已终止。
③ 该伙伴事务管理器已经禁止了它对远程/网络事务的支持。 (异常来自
HRESULT:0x8004D025)。(TransactionScope异常)
④ [COMException (0x8004d00e):此事务已明地或暗地被确认或终止 (异常来自
HRESULT:0x8004D00E)]。(MSDTC 分布式事务错误)
⑤ Import of MSDTC transaction failed: Result Code = 0x8004d023. (MSDTC
安全性配置问题)
二、解决方法
遇到以上的问题或SQL Server分布式的问题,请按照以下步骤设置,问题应该可以
得到解决。可能有些步骤对您来说是多余的,但求全不求漏。
1. 启动MSDTC服务。
MSDTC简介:MSDTC是Microsoft Distributed Transaction Coordinator的简称,
即微软分布式事务协调器,描述:协调跨多个数据库、消息队列、文件系统等资源管理器
的事务。如果停止次服务,则不会发生这些事务。如果禁用此服务,显式依赖此服务的其
他服务将无法启动。
MSDTC启动方法:
①“开始”|“运行”,输入“”,或者“控制面板”|“管理工具”|“服
务”,打开“服务”窗口,在名称中找到“Distributed Transaction Coordinator”,将
其启动。
②“开始”|“所有程序”|“Microsoft SQL Server”|“服务管理器”,打开“SQL
Server 服务管理器”窗口,选中“Distributed Transaction Coordinator”服务,将其
启动。
2. 设置MSDTC组件。
① 检查操作系统是否安装DTC组件。XP默认安装,Win2003默认不安装。安装步
骤如下:
a. “开始”|“控制面板”|“添加/删除程序”|“添加/删除Windows组件”,选择
“应用程序服务器”,单击“详细信息”,选择“启用网络DTC访问”,单击“确定”|“下
发布评论