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

原创 2006年06月16日 15:32:00

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

开发分布式数据库软件时,经常碰到下面的错误:
服务器: 消息 7391,级别 16,状态 1,行 6
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分
布式事务。
[OLE/DB provider returned message: 不能在指定的事务处理器中
获得新事务。]
---------------------------------------------------------------------------------------------
服务器: 消息 8520,级别 20,状态 1,行 8
内部 MSDTC 事务的提交失败: Result Code = 0x8004d019。

连接中断
---------------------------------------------------------------------------------------------

搜索了网上类似问题的解决方案,都建议采用下面的方法(方法一):
1、运行 regedt32,浏览至 HKEY_LOCAL_MACHINE oftware/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 oftware/Microsoft/MSDTC,然后删除 TurnOffRpcSecurity 项。

但是实际上该方法基本上解决不了问题,经过长时间的反复实践,我终于按下面的方法解决了:
(方法二)
1、按照方法一的方法处理一遍,如果不行,再继续下面的方法
2、安装windows 2003 sp1,安装好后,方法一中的第4步设置对话框和原来不一样了,选择“事务管理通讯”中的“不要求验证”
3、最好安装好MDAC2.8
3、通过查找,在C:找到名为“hosts”的文件(没有扩展名),通常路径为C:/WINDOWS/system32/drivers/etc,将对方服务器的IP和计算机对应起来,参考如下:
==========================================================================================
# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

127.0.0.1 localhost
192.168.1.2 中心
192.168.1.3 西站
192.168.106.35 信息中心2
==============================================================================================
一定要将每台服务器的hosts文件都修改好
通过以上办法,我的分布式就可以正常运行了,速度也非常快

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

 在开发分布式数据库软件时,经常碰到下面的错误:服务器: 消息 7391,级别 16,状态 1,行 6该操作未能执行,因为 OLE DB 提供程序 SQLOLEDB 无法启动分布式事务。[OLE/DB...
  • cngkqy
  • cngkqy
  • 2008年03月20日 11:48
  • 795

微服务架构的分布式事务的几个解决方案

微服务架构的分布式事务的几个解决方案 在网上看了很多的关于分布式事务的文章,在此总结下微服务架构下的分布式事务的几个方式 一、尽量在业务上和技术上避免分布式事务          显而易见,微服务...
  • qq_17805795
  • qq_17805795
  • 2017年02月07日 15:38
  • 1460

分布式事务解决方案(一)

分布式事务的一致性分为两种,实时一致性和最终一致性,实时一致性要求的客户可接受的时间内完成数据操作,最终一致性要求在较长的时间内保证数据一致即可。...
  • u010293698
  • u010293698
  • 2016年08月31日 21:53
  • 1820

【备忘】2017年7月最新微服务架构的分布式事务解决视频教程

2017年7月最新微服务架构的分布式事务解决视频教程
  • qq_38472241
  • qq_38472241
  • 2017年11月13日 12:55
  • 194

分布式事物解决方案含视频教程

分布式事物解决方案 很多人对分布式事物如何解决,都觉得非常复杂。其实我觉得并不是特别复杂,只是设计的知识点非常多,难以理解而已。 谈到分布式事物如何解决,首先要熟悉分布式rpc远程调用过程、消息中...
  • yushengjun_644
  • yushengjun_644
  • 2017年12月03日 02:58
  • 660

该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。新事务不能登记到指定的事务处理器中。

问题:该操作未能执行,因为 OLE DB 提供程序 SQLOLEDB 无法启动分布式事务。[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]...
  • sanpo
  • sanpo
  • 2007年12月21日 10:55
  • 3278

分布式事务及分布式系统一致性解决方案

在分布式系统中,同时满足“一致性”、“可用性”和“分区容错性”三者是不可能的。分布式系统的事务一致性是一个技术难题,各种解决方案孰优孰劣? 在OLTP系统领域,我们在很多业务场景下都会面临事务一致性...
  • dinglang_2009
  • dinglang_2009
  • 2016年07月02日 10:46
  • 15835

无法启动分布式事务的解决方法

当运行分布式事务对 ANSI,并在从 SQL Server, 您可能收到错误消息, 它类似于以下:服务器: 消息 7391, 级别 16, 状态 1, 行 1因为 OLEDB 提供程序 SQLOLE...
  • Flora_qxy
  • Flora_qxy
  • 2006年12月07日 14:37
  • 5753

聊聊分布式事务&分布式系统事务一致性解决方案

事务就是一个会话过程中,对上下文的影响是一致的,要么所有的更改都做了,要么所有的更变都撤销掉。就要么生,要么死。没有半死不死的中间不可预期状态。 参考下薛定谔的猫。 事务是为了保障业务数据的完...
  • gaowenhui2008
  • gaowenhui2008
  • 2016年12月28日 17:06
  • 7853

深入理解分布式事务,高并发下分布式事务的解决方案

深入理解分布式事务,高并发下分布式事务的解决方案
  • mine_song
  • mine_song
  • 2017年03月20日 08:33
  • 38043
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案
举报原因:
原因补充:

(最多只允许输入30个字)