OLEDB分布式事务无法启动的解决方案一、 问题现象在执行分布式事务时,在后台报如下错误::[BEA][SQLServerJDBCDriver][SQLServer]该操作未能执行,因为OLEDB提供程序'SQLOLEDB'无法启动分布式事务。二、 解决方案1. 双方启动MSDTC服务MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(DistributedTransactionCoordinator)服务。MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。,该进程调用系统MicrosoftPersonalWebServer和MicrosoftSQLServer。:控制面板--管理工具--服务--DistributedTransactionCoordinator依存关系:RemoteProcedureCall(RPC)ountsManager建议:一般家用计算机涉及不到,除非你启用MessageQueuing服务,可以停止。解决办法:-->管理工具-->服务-->DistributedTransactionCoordinator-->属性-->"开启服务后正常。注:如果在第1步DistributedTransactionCoordinator无法启动,则是因为丢失了日志文件,重新创建日志文件,再启动就行了。重新创建MSDTC日志,并重新启动服务的步骤如下:(1)单击"开始",单击"运行",输入cmd后按"确定"。(2)输入:msdtc-resetlog(注意运行此命令时,不要执行挂起的事务)(3)startmsdtc回车,搞定!“服务”里找到这三个服务,都启动就行了?DistributedTransactionCoordinator?RemoteProcedureCall(RPC)?ountsManager2. 打开双方135端口MSDTC服务依赖于RPC(RemoteProcedureCall(RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。 使用“IP135”命令测试对方端口是否对外开放。也可用端口扫描软件(比如AdvancedPortScanner)扫描端口以判断端口是否开放。3. 保证链接服务器中语句没有访问发起事务服务器的操作在发起事务的服务器执行链接服务器上的查询、视图或存储过程中含有访问发起事务服务器的操作,这样的操作叫做环回(loopback),是不被支持的,所以要保证在链接服务器中不存在此类操作。4. 在事务开始前加入setxact_aborton语句对于大多数OLEDB提供程序(包括SQLServer),必须将隐式或显示事务中的数据修改语句中的XACT_ABORT设置为ON。唯一不需要该选项的情况是在提供程序支持嵌套事务时。5. MSDTC设置打开“管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键。在MSDTC选项卡中,
oledb分布式事务无法启动的解决方案 来自淘豆网m.daumloan.com转载请标明出处.