解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案
来源:互联网 发布:塔人网络 编辑:程序博客网 时间:2024/05/02 10:56
在开发分布式数据库软件时,经常碰到下面的错误:
服务器: 消息 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
4、安装netbios协议
5、通过查找,在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文件都修改好
通过以上办法,我的分布式就可以正常运行了,速度也非常快
另外,因为不可能为一个开发人员配多台电脑,许多人都有用虚拟PC的习惯,我们知道,虚拟PC实际上是一个文件,为了省力,安装好一台后,通常将文件复制一下,就成了新的一台PC,根据实验,这样建立起来的两台虚拟PC进行分布式时也会出现这样的错误,所以不能偷懒,两台虚拟PC都必须老老实实的从头安装.
- 解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案
- 解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案
- 解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案
- 解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案
- MSSQLServerOLEDB分布式事务无法启动的一般解决方案
- SQLNCLI" 无法启动分布式事务"问题的解决思路
- 无法启动分布式事务的解决方法
- MSDTC 分布式事务无法启动
- VMWare中安装Windows Server2012无法启动的解决方案
- 分布式事务的解决方案
- 分布式事务的解决方案
- 分布式事务的解决方案
- SQL Server 解决 "无法执行该操作,因为链接服务器 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务"
- windows中实例无法启动的解决一例
- Windows无法正常启动的解决方案
- 该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。新事务不能登记到指定的事务处理器中。
- SQLNCLI" 无法启动分布式事务"问题
- 图解分布式事务的解决方案
- 高手通讯录
- L2TP 控制连接
- ASP中的典型WAP中文显示
- 在DataGrid中,使鼠标到达的行和列显示不同的颜色
- cocoon学习笔记
- 解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案
- 实现返回前页的方法
- 应用:热键类
- [转] 基于MySQL的数据库集群系统的实现
- [转] 将数据库访问集成到 Linux 应用中
- [转] 在 MySQL 数据库中使用 C 执行 SQL语句
- [转] 在 Linux 上使用 Bugzilla 跟踪 bug
- 简单但还比较实用的模板技术
- 在Tomcat上配置SSL