DTCTester tests a distributed transaction against a specified Microsoft SQL Server. This tool helps to test distributed transactions across firewalls or against networks. DTCTester performs distributed transactions by using ODBC API against a SQL Server database.
Download the DTCTester Tool
The following file is available for download from the Microsoft Download Center: Download the DTCTester package now.For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:
119591 How to Obtain Microsoft Support Files from Online Services
Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.
What Does the DTCTester Tool Do?
Establishes a connection to SQL Server by using a data source name (DSN) and username and password that you provide on the command line by using the default network library.
Creates a temporary table.
Enlists the connection in a transaction.
Does an insert on the temporary table.
Commits the distributed transaction.
Selects inserted value to make sure it was committed.
Closes the connection.
How to Use the DTCTester Tool
Create an ODBC data source for your SQL Server through the ODBC utility in Control Panel.
Execute the following from the command line:
dtctester <dsn name><user name><password>
Replace the values in brackets as appropriate for your environment.
Typical Causes Where the DTCTester Tool Fails
Firewall has incorrect ports closed.
There are bad WINS/DNS entries.
Misconfigured SQL Server cluster or dual network adapter.
Other misconfigured network setting.
Example of Error that Occurs When the DTCTester Fails
Command Line: dtctester bad baduser badpassExecuted: dtctesterDSN: badUser Name: baduserPassword: badpasstablename=#dtc7421Creating Temp Table for Testing: #dtc7421Warning: No Columns in Result Set From Executing: 'create table #dtc7421 (ival int)'Initializing DTCBeginning DTC TransactionEnlisting Connection in TransactionError:SQLSTATE=25S12, Native error=-2147168242,msg='[Microsoft][ODBC SQL Server Driver] Distributed transaction error'Error:SQLSTATE=24000, Native error=0,msg=[Microsoft][ODBC SQL Server Driver]Invalid cursor stateAborting DTC TransactionReleasing DTC Interface PointersSuccessfully Released pTransaction Pointer
Example of Successful DTCTester Output
Command Line: dtctester test saExecuted: dtctesterDSN: testUser Name: saPassword is assumed to be NULL.Connecting to the databasetablename= #dtc7488Creating Temp Table for Testing: #dtc7488Warning: No Columns in Result Set From Executing: 'create table #dtc7488 (ival int)'Initializing DTCBeginning DTC TransactionEnlisting Connection in TransactionExecuting SQL Statement in DTC TransactionInserting into Temp...insert into #dtc7488 values (1)Warning: No Columns in Result Set From Executing: 'insert into #dtc7488 values (1) 'Verifying Insert into Temp...select * from #dtc7488 (should be 1): 1Press enter to commit transaction.Committing DTC TransactionReleasing DTC Interface PointersSuccessfully Released pTransaction Pointer.Disconnecting from Database and Cleaning up Handles
Suggested Ports to Open for DTC
RPC EPM (end point mapper)
TDS SQL traffic when using TCP/IP
SQL 2000 Integrated Security
MSDTC [Dynamically assigned a port by the EPM]
For additional information, click the article number below to view the article in the Microsoft Knowledge Base:
191168 INFO: Error '-2147168246 (8004d00a)' Failed to Enlist on Calling Object's Transaction
For additional information, see the white paper on the following Microsoft Web site: