Communication with the underlying transaction manager has failed.MSDTC

百般思念 提交于 2019-12-19 12:04:14

问题


I ve two systems one is windows 7 Enterprise in which my application is installed and I've Windows server 2008 R Sp1 machine where database is intsllaed.

Getting below error when accessing database ommunication with the underlying transaction manager has failed. The MSDTC transaction manager was unable to pull the transaction from the source transaction manager due to communication problems. Possible causes are: a firewall is present and it doesn't have an exception for the MSDTC process, the two machines cannot find each other by their NetBIOS names, or the support for network transactions is not enabled for one of the two transaction managers.

I've already enabled the required MSDTC and inbound and out bound requests and set no authentication.

Both the systems are in the same domain.

From windows server 2008 R2 machine I'm able to ping by name to windows 7 and vice-versa is not happening.

Tried pining Windows server 2008 R2 Machine from domain controller machine and failed.

Some where read that for Trasactions between the two servers MSDTC should be set up and to test these setting DTCPing tool is avaialble.got failed when running

DTCPing tool when trying to ping from Windows server 2007 machine to windows server 2008 R2 as its not able to find it by netbios name


回答1:


I had the same problem win my win10 machine. Check the following steps:

Services => Distributed Transaction Coordinator is running

Component Services => Local DTC => Properties => check if Inbound and Outbound is allowed. I have the following settings:

Component Services => My Computer => Properties => Default Protocol => TCP/IP The port range 5000-5100 is configured.

Windows Firewall => Allow an app or feature through Windows Firewall => Distributed Transaction Coordinator

if the threee checkboxes are not set you can do this with the following commands

netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (TCP-In)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (TCP-Out)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (RPC)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (RPC-EPMAP)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (TCP-In)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (TCP-Out)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (RPC)" new enable=yes profile="domain,private,public"
netsh advfirewall firewall set rule name="Distributed Transaction Coordinator (RPC-EPMAP)" new enable=yes profile="domain,private,public"


来源:https://stackoverflow.com/questions/42115390/communication-with-the-underlying-transaction-manager-has-failed-msdtc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!