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

金先森3

金先森3

2016-02-19 17:46

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐windows server 2003 中 SQL Server 2000 分布式事务 错误解决方,赶紧看过来吧!

  

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

  症状如果在 Windows .NET Server 上安装的 SQL Server 2000 中运行链接服务器查询,可能会返回下列错误(即使 MSDTC 正在该服务器上运行):Server:Msg 8501, Level 16, State 3, Line 3MSDTC on server 'server name' is unavailable.

在 SQL Server 错误日志中,您会发现由运行该查询的 spid 引发的下列错误:

  Resource Manager Creation Failed:Result Code = 0x8004d01c

原因

  这是设计使然。如果在"本地系统"帐户下运行"分布式事务处理协调器服务"就会发生此错误。

解决方案

  最近为了提高 RPC 安全性对 DTC 所做的更改要求 MSDTC 作为"NT AuthorityNetworkService"运行。这是 .NET Server 的默认选项。在 Windows NT 和 Windows 2000 中,默认情况下 MSDTC 服务是在"本地系统"帐户下运行的。警告:"注册表编辑器"使用不当可造成严重问题,这些问题可能需要重新安装操作系统。Microsoft 不保证能够解决因为"注册表编辑器"使用不当而产生的问题。使用"注册表编辑器"需要您自担风险。若要将 MSDTC 服务帐户从"本地系统"更改为"NT AuthorityNetworkService",请执行下列步骤: 1.运行 regedt32,浏览至 HKEY_LOCAL_MACHINESoftwareMicrosoftMSDTC。添加一个 DWORD 值 TurnOffRpcSecurity,值数据为 1。2.打开命令提示,运行"net stop msdtc",然后运行"net start msdtc"。3.转至"组件服务管理工具"。a. 浏览至"启动管理工具"。b. 选择"组件服务"。c. 展开"组件服务"树,然后展开"我的电脑"。d. 右键单击"我的电脑",然后选择"属性"。e. 在 MSDTC 选项卡中,确保选中了下列选项:

网络 DTC 访问  网络管理  网络事务XA 事务
另外,"DTC 登录帐户"一定要设置为"NT AuthorityNetworkService"。f. 单击"确定"。这样将会提示您"MS DTC 将会停止并重新启动。所有的依赖服务将被停止。请按'是'继续"。单击"是"继续。g. 单击"确定"关闭"我的电脑"属性窗口。4.再次运行 regedt32,浏览至 HKEY_LOCAL_MACHINESoftwareMicrosoftMSDTC,然后删除 TurnOffRpcSecurity 项。现在您的 MSDTC 服务应该在"NT AuthorityNetworkService"帐户下运行了,并且不会再出现该错误。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)更多信息

  当"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.]

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)跟踪标记 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 remote1exec sp_setnetname remote1, remote server namegoexec remote1.pubs.dbo.sp_executesql N'create table t (c1 int)'goset xact_abort ongobegin traninsert into remote1.pubs.dbo.t values (1)commit trango
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
windows server 2003 中 SQL Server 2000 分布式事务 错误解决方

解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案

SQLServer
解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

使用Sql server进行分布式查询

SQLServer
使用Sql server进行分布式查询

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

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

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Windows 2003不太喜欢SQL Server2000

SQLServer
Windows 2003不太喜欢SQL Server2000

分布式查询和分布式事务

SQLServer
分布式查询和分布式事务

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

超圆滑圆角框的半完美解决方案

超圆滑圆角框的半完美解决方案

MSSQL 2005 安全设置的图文教程

MSSQL 2005 安全设置的图文教程
下拉加载更多内容 ↓