SQLServer2000分布式事务错误解决方法
|
源代码网整理以下 如果在Windows.NETServer上安装的SQLServer2000中运行链接服务器查询,可能会返回下列错误(即使MSDTC正在该服务器上运行): 源代码网整理以下症状如果在Windows.NETServer上安装的SQLServer2000中运行链接服务器查询,可能会返回下列错误(即使MSDTC正在该服务器上运行):Server:Msg8501,Level16,State3,Line3 MSDTConserver"servername"isunavailable.在SQLServer错误日志中,您会发现由运行该查询的spid引发的下列错误:ResourceManagerCreationFailed:ResultCode=0x8004d01c原因这是设计使然。如果在"本地系统"帐户下运行"分布式事务处理协调器服务"就会发生此错误。解决方案最近为了提高RPC安全性对DTC所做的更改要求MSDTC作为"NTAuthorityNetworkService"运行。这是。NETServer的默认选项。在WindowsNT和Windows2000中,默认情况下MSDTC服务是在"本地系统"帐户下运行的。 源代码网整理以下警告:"注册表编辑器"使用不当可造成严重问题,这些问题可能需要重新安装操作系统。Microsoft不保证能够解决因为"注册表编辑器"使用不当而产生的问题。使用"注册表编辑器"需要您自担风险。 源代码网整理以下若要将MSDTC服务帐户从"本地系统"更改为"NTAuthorityNetworkService",请执行下列步骤:1.运行regedt32,浏览至HKEY_LOCAL_MACHINESoftwareMicrosoftMSDTC.添加一个DWORD值TurnOffRpcSecurity,值数据为1.2.打开命令提示,运行"netstopmsdtc",然后运行"netstartmsdtc".3.转至"组件服务管理工具". 源代码网整理以下a.浏览至"启动管理工具". 源代码网整理以下4.再次运行regedt32,浏览至HKEY_LOCAL_MACHINESoftwareMicrosoftMSDTC,然后删除TurnOffRpcSecurity项。现在您的MSDTC服务应该在"NTAuthorityNetworkService"帐户下运行了,并且不会再出现该错误。 源代码网整理以下更多信息当"MSDTC安全性"配置下的"网络DTC访问"禁用时,如果运行链接服务器查询则会返回下列错误:Server:Msg7391,Level16,State1, 源代码网整理以下
MSDTC服务一定要按照上面"解决方案"一节中的说明进行设置,才能防止此错误。 源代码网整理以下再现现象的步骤 源代码网整理以下1.转至"启动管理工具服务". |
