SQL Server 2000分布式事务错误解决

如果在Windows.NETServer上安装的SQLServer2000中运行链接服务器查询,可能会返回下列错误(即使MSDTC正在该服务器上运行):

症状如果在Windows.NETServer上安装的SQLServer2000中运行链接服务器查询,可能会返回下列错误(即使MSDTC正在该服务器上运行):Server:Msg8501,Level16,State3,Line3 MSDTConserver'servername'isunavailable.在SQLServer错误日志中,您会发现由运行该查询的spid引发的下列错误:ResourceManagerCreationFailed:ResultCode=0x8004d01c原因这是设计使然。如果在"本地系统"帐户下运行"分布式事务处理协调器服务"就会发生此错误。解决方案最近为了提高RPC安全性对DTC所做的更改要求MSDTC作为"NTAuthority\NetworkService"运行。这是。NETServer的默认选项。在WindowsNT和Windows2000中,默认情况下MSDTC服务是在"本地系统"帐户下运行的。

警告:"注册表编辑器"使用不当可造成严重问题,这些问题可能需要重新安装操作系统。Microsoft不保证能够解决因为"注册表编辑器"使用不当而产生的问题。使用"注册表编辑器"需要您自担风险。

若要将MSDTC服务帐户从"本地系统"更改为"NTAuthority\NetworkService",请执行下列步骤:1.运行regedt32,浏览至HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC.添加一个DWORD值TurnOffRpcSecurity,值数据为1.2.打开命令提示,运行"netstopmsdtc",然后运行"netstartmsdtc".3.转至"组件服务管理工具".

a.浏览至"启动管理工具".

b.选择"组件服务".

c.展开"组件服务"树,然后展开"我的电脑".

d.右键单击"我的电脑",然后选择"属性".

e.在MSDTC选项卡中,确保选中了下列选项:网络DTC访问网络管理网络事务XA事务另外,"DTC登录帐户"一定要设置为"NTAuthority\NetworkService".

f.单击"确定".这样将会提示您"MSDTC将会停止并重新启动。所有的依赖服务将被停止。请按'是'继续".单击"是"继续。

g.单击"确定"关闭"我的电脑"属性窗口。

4.再次运行regedt32,浏览至HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC,然后删除TurnOffRpcSecurity项。现在您的MSDTC服务应该在"NTAuthority\NetworkService"帐户下运行了,并且不会再出现该错误。

更多信息当"MSDTC安全性"配置下的"网络DTC访问"禁用时,如果运行链接服务器查询则会返回下列错误:

server:msg 7391, level 16, state 1, line 2 the operation could not be performed because the ole db provider sqloledb was unable to begin a distributed transaction.[ole/db provider returned message:new transaction cannot enlist in the specified transaction coordinator.]

跟踪标记 7300 打开时:
server:msg 7391, level 16, state 1, line 2 the operation could not be performed because the ole db provider sqloledb was unable to begin a distributed transaction.[ole/db provider returned message:new transaction cannot enlist in the specified transaction coordinator.] ole db error trace [ole/db provider sqloledb itransactionjoin::jointransaction returned 0x8004d00a].

MSDTC服务一定要按照上面"解决方案"一节中的说明进行设置,才能防止此错误。

再现现象的步骤

1.转至"启动管理工具服务".

2.右键单击"分布式事务处理协调器"服务,转至"登录"选项卡,选择"登录身份"下的"本地系统"帐户。

3.停止然后重新启动该服务。

4.从查询分析器,运行下列脚本:

exec sp_addlinkedserver remote1
exec sp_setnetname remote1, <remote server name>
go
exec remote1.pubs.dbo.sp_executesql ncreate table t (c1 int)
go
set xact_abort on
go
begin tran
insert into remote1.pubs.dbo.t values (1)
commit tran
go

时间: 2024-09-21 05:13:20

SQL Server 2000分布式事务错误解决的相关文章

windows server 2003 中 SQL Server 2000 分布式事务 错误解决方法

server|window|错误|分布式|解决 症状如果在 Windows .NET Server 上安装的 SQL Server 2000 中运行链接服务器查询,可能会返回下列错误(即使 MSDTC 正在该服务器上运行):Server:Msg 8501, Level 16, State 3, Line 3 MSDTC on server 'server name' is unavailable.在 SQL Server 错误日志中,您会发现由运行该查询的 spid 引发的下列错误:Resour

SQL Server 2000启动1069错误解决方法

首先介绍网络上常用的两种解决方法: 1.我的电脑--控制面板--管理工具--服务--右键 MSSQLSERVER--属性--登陆--登陆身份--选择"本地系统帐户" 或: 2.我的电脑--控制面板--管理工具--服务--右键 MSSQLSERVER--属性--登陆--登陆身份--选择"此帐户"--密码和确认密码中输入你修改后的administrator密码. 两者的区别: 选择第一种方式,以后修改了administrator密码,不用再调整(但要求登陆操作系统的是系

关于SQL Server 2000和SQL Server 2005分布式事务能否协同工作的测试

server|分布式 关于SQL Server 2000和SQL Server 2005分布式事务能否协同工作的测试 MS DTC Report 1.      MS DTC 背景 2.      MSDTC 测试目的 3.      MSDTC 测试环境 3.1            本次验证测试环境: 3.2            环境配置 3.3            验证MSDTC 3.4            创建验证用表 4.      Linked Server测试 5.     

恢复sql server 2000误删数据的解决办法_MsSql

今天不小心把客户那边的数据库中删了一千多条数据,而且之前又没有备份,真的是很郁闷,后来在网上找到一工具,用起来挺方便,让我躲过一劫. 首先来看一下界面: 输入服务器地址,用户名及密码后点Connect,进入到下面的界面: 在这里选择要恢复数据的数据库,选择Use On-line Log(如果你又备份文件的话就不需要用这个工具了,直接用SQL搞定了).然后点Attach,进入下面的界面: 可以看到左边菜单中有很多功能,我们要恢复数据,首先要查看日志,找出我们误操作的那些日志记录,点Browse下的

恢复sql server 2000误删数据的解决办法

今天不小心把客户那边的数据库中删了一千多条数据,而且之前又没有备份,真的是很郁闷,后来在网上找到一工具,用起来挺方便,让我躲过一劫. 首先来看一下界面: 输入服务器地址,用户名及密码后点Connect,进入到下面的界面: 在这里选择要恢复数据的数据库,选择Use On-line Log(如果你又备份文件的话就不需要用这个工具了,直接用SQL搞定了).然后点Attach,进入下面的界面: 可以看到左边菜单中有很多功能,我们要恢复数据,首先要查看日志,找出我们误操作的那些日志记录,点Browse下的

SQL Server 2000“设备激活错误”的解决方法_MsSql

数据库中对数据的操作是一大重要技能,其中,数据的恢复和还原也是常做的事.不知你是否在数据库恢复时遇到诸如"设备激活错误,请使用with move选项来标志该文件的有效位置"的错误信息提示?不知你在还遇到这样的情况:还原数据库时, 发现在企业管理器中,操作:所有任务-->还原数据库-->选择"从设备"还原,找到备份文档路径,强制还原.报错:设备激活错误,请使用with move选项来标志该文件的有效位置.本文将为你讲解出现这个错误应如何解决. 解决方法:右

SQL Server 2000“设备激活错误”的解决方法

数据库中对数据的操作是一大重要技能,其中,数据的恢复和还原也是常做的事.不知你是否在数据库恢复时遇到诸如"设备激活错误,请使用with move选项来标志该文件的有效位置"的错误信息提示?不知你在还遇到这样的情况:还原数据库时, 发现在企业管理器中,操作:所有任务-->还原数据库-->选择"从设备"还原,找到备份文档路径,强制还原.报错:设备激活错误,请使用with move选项来标志该文件的有效位置.本文将为你讲解出现这个错误应如何解决. 解决方法:右

SQL Server 2000分布式查询:OLE DB连接

概述和术语 在 MicrosoftSQL Server 2000 中,分布式查询允许SQL Server用户访问基于SQL Server的服务器以外的数据(位于其他运行SQL Server的服务器或是具有OLE DB接口的其他数据源中).OLE DB提供了统一的方式来访问异类数据源中的列表数据. 在本文中,分布式查询是指任何引用了一个或多个外部OLE DB数据源中表或行集的SELECT.INSERT.UPDATE或DELETE语句. 远程表是指存储于 OLE DB 数据源中并且不在执行查询的SQ

SQL Server 2005 还原数据库错误解决方法_MsSql

在还源数据库时出现以下错误(详情参见下图): System.Data.SqlClient.SqlError: 在对 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BusinessDB.mdf' 尝试 'RestoreContainer::ValidateTargetForCreation' 时,操作系统返回了错误 '5(拒绝访问.)'. (Microsoft.SqlServer.Express.Smo)     原因分析: 没有对"C: