教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · MSSQL教程 · MsSql综合技巧

该操作未能执行,因为 OLE DB 提供程序 SQLOLEDB 无法启动分布式事务。

学院最新推荐文章
教程推荐
『该操作未能执行,因为 OLE DB 提供程序 SQLOLEDB 无法启动分布式事务。』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2008-9-16 
现在做测试是在同一台计算机不同数据库之间做数据查询,
在一个存储过程里用了分布式事务。
begin DISTRIBUTED    transaction
exec PRO_Backup @DBSource,@DBName,@UserId,@Password,@backupDate
print '删除开始'
--exec PRO_Delete @backupDate
if @@ERROR <>0
rollback
else
commit transaction

在查询分析器单独执行PRO_Backup 没有问题,
执行这段代码的存储过程就提示:

该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a]。


MSDTC服务已启动,需要怎样的设置?

这个问题第1个回答:
在同一台计算机不同数据库之间做数据查询,不必使用分布式事务。

这个问题第2个回答:
现在是做测试环境,目的查询和删除局域网内不同数据库服务器的数据.

这个问题第3个回答:
小地主果然分多,下面是你要的答案:
http://support.microsoft.com/?kbid=873160
这个问题第4个回答:
分布式事务应该是不同机器上的吧,不过还真是没用过。。。
这个问题第5个回答:
http://expert.csdn.net/Expert/topic/2835/2835706.xml?temp=.1959955
回复人: j9988(j9988)

一.A.不用事务,关用SELECT 语句.是否可以分布式查询?

  B.LINKSERVER 在做分布式更新事务时不能对本机操作.(就是不能环回分布式事务)

  C.DBCC TRACEON (3604, 7300)--用跟踪看更详细错误信息.
 
  D.下载MS提供的DTCPing.exe 分装在两台机上,按README说明来运行它.看出错信息.
http://download.microsoft.com/download/complus/msdtc/1.7/nt45/en-us/DTCPing.exe

二.两台机的MSDTC是否都打开了.

三.MSDTC设置是否正确.
1.打开命令提示,运行"net stop msdtc",然后运行"net start msdtc"。
2.转至"组件服务管理工具"。
3.浏览至"启动管理工具"。
4.选择"组件服务"。
a.展开"组件服务"树,然后展开"我的电脑"。
b.右键单击"我的电脑",然后选择"属性"。
C.在 MSDTC 选项卡中,确保选中了下列选项: 网络 DTC 访问
网络管理
网络事务
    XA 事务
e.另外,"DTC 登录帐户"一定要设置为"NT Authority\NetworkService"。
5.单击"确定"。这样将会提示您"MS DTC 将会停止并重新启动。
  所有的依赖服务将被停止。请按'是'继续"。单击"是"继续。
6.单击"确定"关闭"我的电脑"属性窗口。

四.
MSDTC依赖于RPC,RPC使用的端口是135,测试135端口是否打开.是否有防火墙?如果有先关了防火墙.
telnet IP 135
如果是关闭的打开它.

五.
有的机由于各种原因),SQLOLEDB不能使用分布式事务,更改为"MSDASQL" 的ODBC方式联接.
使用RRAS而不是RAS.(控制面版--管理工具--远程服务管理器)
Check whether you are using Remote Access Server (RAS) to access remote servers. If so, make sure that you have implemented Routing RAS (RRAS). Linked server does not work on RAS because RAS allows only one way communication.


七.检查你的两台服务器是否在同一个域中.
如果不在同一个域中,是否建立可信任联接.

八.如果是WIN2000,升级到SP4

九.升级MDAC到2.6以上,最好是2.8.

十.要安装SQL的最新补丁: sp3a
'全部补丁的位置
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=9032f608-160a-4537-a2b6-4cb265b80766

'应该安装的补丁sql 2000 sp3
http://download.microsoft.com/download/d/d/e/dde427eb-0296-4eac-a47c-d11a66b03816/chs_sql2ksp3.exe



这个问题第6个回答:
主要条件:
1.  网络通,  sql  server  之间能够互相连接
2.  分布式事务要求的  135  端口没有被防火墙限制  (可以用  DTCPing.exe  这个工具来检查)
3.  服务器之间能够做相互的身份验证.  如果无法保证,  建议取消身份验证(前面步骤三中有个地方设置如何进行身份验证)
4.  MSDTC  服务是开启的

作者:Aden 来源:C.S.D.N
】【关闭窗口
·上页:
·下页:
相关文章
     数据库类教程 - MsSql综合技巧
普通教程【脑袋快想爆炸了- -!】 怎么样
普通教程关于级联删除地疑难,新手提问,
普通教程怎么样动态控制列数?
普通教程数据库恢复 MS2000
普通教程当数据库中varchar字段值为null
普通教程create function 怎么才无法要返
普通教程各位帮我看看是啥疑难啊, SQL运
普通教程SQL server 2005 安装疑难 SP2更
普通教程sql update
普通教程update触发器地疑难
普通教程字符串地查询疑难
普通教程安全性--登陆--想建一个用户tes
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光