Microsoft KB Archive/293799

From BetaArchive Wiki

Article ID: 293799

Article Last Modified on 9/7/2004



APPLIES TO

  • Microsoft Windows DNA



This article was previously published under Q293799

SUMMARY

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.

back to the top

Download the DTCTester Tool

The following file is available for download from the Microsoft Download Center:
[GRAPHIC: Download]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.

back to the top

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.

back to the top

How to Use the DTCTester Tool

  1. Create an ODBC data source for your SQL Server through the ODBC utility in Control Panel.
  2. Execute the following from the command line:

    dtctester <dsn name><user name><password>

    Replace the values in brackets as appropriate for your environment.

back to the top

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.

back to the top

Example of Error that Occurs When the DTCTester Fails

Command Line: dtctester bad baduser badpass
Executed: dtctester
DSN: bad
User Name: baduser
Password: badpass
tablename=#dtc7421
Creating Temp Table for Testing: #dtc7421
Warning: No Columns in Result Set From Executing: 'create table #dtc7421 (ival int)'
Initializing DTC
Beginning DTC Transaction
Enlisting Connection in Transaction
Error:
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 state
Aborting DTC Transaction
Releasing DTC Interface Pointers
Successfully Released pTransaction Pointer
                    

back to the top

Example of Successful DTCTester Output

Command Line: dtctester test sa
Executed: dtctester
DSN: test
User Name: sa
Password is assumed to be NULL.
Connecting to the database
tablename= #dtc7488
Creating Temp Table for Testing: #dtc7488
Warning: No Columns in Result Set From Executing: 'create table #dtc7488 (ival int)'
Initializing DTC
Beginning DTC Transaction
Enlisting Connection in Transaction
Executing SQL Statement in DTC Transaction
Inserting 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): 1
Press enter to commit transaction.

Committing DTC Transaction
Releasing DTC Interface Pointers
Successfully Released pTransaction Pointer.
Disconnecting from Database and Cleaning up Handles
                    

back to the top

Suggested Ports to Open for DTC

port(s) port's purpose
Open 135 RPC EPM (end point mapper)
Open 1433 TDS SQL traffic when using TCP/IP
Open 1434 SQL 2000 Integrated Security
Open 5100-5200 MSDTC [Dynamically assigned a port by the EPM]

back to the top

REFERENCES

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:

Using Distributed COM with Firewalls
http://www.microsoft.com/com/wpaper/dcomfw.asp


back to the top

Keywords: kbhowto kbdownload kbdcom KB293799