当前位置: 代码迷 >> Sql Server >> 无法执行该操作,因为链接服务器 "srv2" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务解决思路
  详细解决方案

无法执行该操作,因为链接服务器 "srv2" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务解决思路

热度:258   发布时间:2016-04-24 08:59:54.0
无法执行该操作,因为链接服务器 "srv2" 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务
夸服务触发器,分布式事物提示错误
触发器代码没问题
本服务器ip 192.168.7.202
建立链接
exec sp_addlinkedserver  'sr2','','SQLOLEDB','172.16.1.3' --这个ip是被链接的服务器地址在本服务器也连的上ping的通
exec sp_addlinkedsrvlogin 'sr2','false',null,'ehr','Wen@kq'
go

本服务器sql2008r2
被连接服务器sql2000 已经打了sp4补丁
触发器代码没有问题执行成功

百度的一下方法都试过
1、关闭双方防火墙
2、启动双方MSDTC服务
3、事务开始前加入set xact_abort ON语句
4、管理工具――组件服务设置允许远程客户端、允许远程管理、允许入站、允许出站、不要求进行验证
5、DTC登陆账户为:NT   Authority\NetworkService
6、服务器和名称解析,我这里直接用的ip地址应该不存在这个问题

怀疑:是否是应为不在同一网段?但是能ping通呀,本地服务器也能连上'172.16.1.3' 
其他实在找不出问题了
MSDTC工具也试过了
帮忙解决,顶一下吧,大神们
------解决思路----------------------
这个开了吗?
--開啓外部RPC配置,允许其它SQL Server使用RPC远程连接到本SQL Server
EXEC   sp_serveroption   'mgfTS','rpc out','TRUE'  

(也可在企业管理器中-->数据库-->安全-->链接数据库-->点击你需要配置的链接数据库-->属性页-->   
  "server   options"-->勾选rpc   out)

以下是在被訪問端數據庫設置
--設定允許外聯

exec sp_configure 'show advanced options',1   --開啓高級設置
reconfigure WITH OVERRIDE;

exec sp_configure 'Ad Hoc Distributed Queries',1--允許openrowset opendatasource訪問
reconfigure WITH OVERRIDE;
exec sp_configure 'show advanced options',0   --關閉高級設置
reconfigure WITH OVERRIDE;

------解决思路----------------------
对触发器所在表的DML语句,加分布式事务试试,

begin distributed tran
  [触发器所在表的DML语句]
commit tran

------解决思路----------------------
建议
1.查看插入的目标表是否有其他的约束? 如foreign key,not null,唯一约束等等.看具体是违反了哪一条.
2.调试时,可以暂时将select A0101,C01TC,A0177 from inserted的值插入一个本地的自定义的表(表上无任何约束的).
   这样就能更直观的看到数据本身了.
------解决思路----------------------
曾有个网友说找我付费支持的,没后文了。。注意防火墙
------解决思路----------------------
用DTCPING测试一下两边是否真正联通。
------解决思路----------------------
楼主 问题解决了吗? 我也遇到了
------解决思路----------------------
求赐教 谢谢
  相关解决方案