有一分布式过程up_GetDataFromOtherServer()用触发器调用up_GetDataFromOtherServer()时,
提示:
该操作未能执行,因为OLE DB 提供程序'SQLOLEDB' 无法启动分布式事务。但是用作业和查询分析器执行up_GetDataFromOtherServer()时,没有问题。
请问是什么原因?

解决方案 »

  1.   

    参考:http://topic.csdn.net/t/20050913/09/4265453.html#
      

  2.   

    解决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文件都修改好   
      通过以上办法,我的分布式就可以正常运行了,速度也非常快