MS SQLServer OLEDB分布式事务无法启动的一般解决方案

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

本文属spanzhang原创,其blog地址为:http://blog.csdn.net/spanzhang。引用或转贴请注明出处,谢谢!!

服务器: 消息 7391,级别 16,状态 1,行 6

该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分

布式事务。

[OLE/DB provider returned message: 不能在指定的事务处理器中

获得新事务。]

---------------------------------------------------------------------------------------------

服务器: 消息 8520,级别 20,状态 1,行 8

内部 MSDTC 事务的提交失败: Result Code = 0x8004d019。

连接中断

---------------------------------------------------------------------------------------------

这个问题,我想做过MS SQLServer分布式数据库系统的人都遇到过。简单的时候是服务没启动,135端口没打开之类的。但等你将这些东西都搞定后仍然不行的时候,你就会感到绝望并且怀疑是不是MS根本就不能使用OLEDB来启动分布式事务了。其实,很多时候一个问题在出现的时候会让你觉得神秘,但解决起来其实很简单。下面就是答案:

1、运行 regedt32,浏览至 HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC。

添加一个 DWORD 值 TurnOffRpcSecurity,值数据为 1。

2、重启MS DTC服务。

3、打开“管理工具”的“组件服务”。

a.

浏览至"启动管理工具"。

b.

选择"组件服务"。

c.

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

d.

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

在 MSDTC 选项卡中,确保选中了下列选项: 网络 DTC 访问

网络管理

网络事务

XA 事务

另外,"DTC 登录帐户"一定要设置为"NT Authority\NetworkService"。

4、重启MS DTC服务。

5、再次运行 regedt32,浏览至 HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC,然后删除 TurnOffRpcSecurity 项。

微软提供的原文:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;329332

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航