OLE DB provider "SQLNCLI11" for linked server "dbLink01" was unable to begin a distributed transac

本文涉及的产品
云防火墙,500元 1000GB
简介: 从网上搜集了以下几个解决方案,但对于非同网段的分布式事务,还是解决不了: 我这边报处错误的详细信息是: 异常信息:The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "dbLink01" was unable to begin a distributed t

从网上搜集了以下几个解决方案,但对于非同网段的分布式事务,还是解决不了:

我这边报处错误的详细信息是:

异常信息:The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "dbLink01" was unable to begin a distributed transaction.
OLE DB provider "SQLNCLI11" for linked server "dbLink01" returned message "没有活动事务。".
导致错误的应用程序或对象的名称:.Net SqlClient Data Provider
引发当前异常的方法:
异常相关帮助:
堆栈信息:
   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout)
   在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
   在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

1、 检查本地机器与目标机器的MSDTCDistributed Transaction Coordinator)服务是否已经启用,具体位置如下图:


2、MSDTC设置

        打开管理工具――组件服务,以此打开组件服务――计算机我的电脑 --- distributed transaction coordinator –本地DTC上右键属性安全选项卡上设置选中网络DTC访问”。在客户端管理中选中允许远程客户端”“允许远程管理”,在事务管理通讯中选允许入站”“允许出站”“不要求进行验证”,保证DTC登陆账户为:NT   Authority\NetworkService。


3、打开双方服务器,再打开SSMS,右击数据库服务器属性,在连接选项卡勾选"需要将分布式事务用于服务器到服务器的通信." 重启双方数据库服务。

4、检查两台机器能够相互ping通Hostname。注意是机器名,而不是IP。若不可以,进行如下设置:在目录“%windir%\system32\drivers\etc”下的hosts文件,写上IPHostName的对应信息,如 “10.25.11.185 GSMAJK”。另外,你也可以使用DTCping工具来测试是否可以在两台机器之间使用MSDTC。

5、 打开双方135端口

        MSDTC服务依赖于RPC(Remote Procedure Call (RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。  使用“telnet IP 135 ”命令测试对方端口是否对外开放。也可用端口扫描软件(比如Advanced Port Scanner)扫描端口以判断端口是否开放。

6、允许msdtc服务通过防火墙,没有该选项时,通过点击【允许运行另一程序】按钮添加,位置为C:/windows/system32/msdtc.exe。或者直接关闭防火墙也可以。






目录
相关文章
|
数据库
Could not create connection to database server. Attempted reconnect 3 times. Giving up.
Could not create connection to database server. Attempted reconnect 3 times. Giving up.
159 0
|
SQL 安全 测试技术
MS SQL 错误:The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "test" was unable to begin a distributed transact
一同事在测试服务器(系统:Windows 2008 R2 Standard 数据库:SQL SERVER 2008 R2)通过链接服务器test使用分布式事务测试时出错,出错信息如下: set xact_abort on begin tran update test.
1479 0
|
SQL 安全 数据库
MS SQL Could not obtain information about Windows NT group/user 'domain\login', error code 0x5. [SQLSTATE 42000] (Error 15404)
最近碰到一个有趣的错误:海外的一台数据库服务器上某些作业偶尔会报错,报错信息如下所示: ---------------------------------------------------------------------------------------------------------...
1241 0
|
SQL 数据库 数据库管理
Replication-Replication Distribution Subsystem: agent xxxxxx failed. Column names in each table must be unique
原文:Replication-Replication Distribution Subsystem: agent xxxxxx failed. Column names in each table must be unique   最近遇到一个关于发布订阅(Replication)的奇葩问题,特此记录一下这个案例。
1036 0
|
SQL 关系型数据库
Reverse Engineering Custom DataTypes -> GUID() in SQL Server to PostgreSQL
原文 https://archive.sap.com/discussions/thread/3641585   First you reverse engineer from a script where the GUID is, into the PDM, there you should get an "internal" type CLS in the model.
1077 0
SAP LX15 报错-Annual inventory procedure not allowed for storage type 001-
SAP WM LX15创建年度盘点凭证, error msg - Annual inventory procedure not allowed for storage type 001 LX15 Error Msg -...
1691 0
下一篇
无影云桌面