SP中调用分布式事务时发生异常,异常信息如下:
OLE DB provider "SQLNCLI" for linked server " " returned message "No transaction is active.".
The operation could not be performed because OLE DB provider "SQLNCLI" for linked server " " was unable to begin a distributed transaction.
初步问题排查:
SQL SERVER 1433端口开放,MSDTC端口135开放
采用MS Dtcping工具双向测试结果:
无法连接到另外一台服务器上的MSDTC.错误信息:1753(There are no more endpoints available from the endpoint mapper.)
RPC test failed一般来说除了固定的135端口外,MSDTC还需要开启的端口为5000-5020,具体可以到SERVER注册表下HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Rpc/Internet/下查找开放的端口范围,默认一般为:5000-5020之间,见截图。
防火墙上端口开启问题解决。
SERVER端MSDTC设置如下图所示: