http://support.microsoft.com/default.aspx/kb/827805/en-us explains how to test a distributed transaction scenario between 2 SQL Servers without the need to install DTCPing.
Here is a scenario.
BTS1 server initiates a distributed transaction on VSQL, a SQL instance hosted on a Windows Cluster having the following characteristics:
BTS1 and the cluster are on two different domains. Among other things, they don't share the same DNS. For instance, BTS1 is BTS1.domain1.net and VSQL is VSQL.domain2.net
In order to be able to ping VSQL, you can add an entry in BTS1, in its %windir%\system32\drivers\etc\hosts. file like
<ip address> VSQL
If you only do that, you might end up with an error like
The transaction has already been implicitly or explicitly committed or aborted
In order to have the distributed transaction working, you need the following to be true (this can be done with the hosts. file):
- BTS1 can ping VSQL
- SQLN1 can ping BTS1
- SQLN2 can ping BTS1
- BTS1 can ping VCLUST
NB: names must be the netbios names.
Additional information: