-->

Communication with the underlying transaction mana

2020-04-01 03:07发布

问题:

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"