- You restart either of the computers.
- You restart MS DTC on either of the computers.
- The computers are in different domains.
When the client computer tries to reestablish the MS DTC connection with the server computer, the client computer sends a packet. Then, the client computer waits for a bind packet response from the server computer. By default, the client computer stops the transaction if the client computer does not receive a response from the server computer in 4 seconds. The response from the server computer may be delayed because of network latency issues or authentication delays. When the response from the server computer does finally reach the client computer, the subsequent transactions succeed.
Additionally, the first transaction may take a long time, and then a later request to do a distributed transaction may finish immediately. This problem may occur when the client-side of MS DTC has a problem communicating with the Kerberos (KDC) server. Typically, this problem occurs if the client and the server are in different domains that have a firewall between them.
For example, this problem occurs in the following scenario:
- WebService is in the Perimeter Network in a domain. WebService has to use transactions with a database server in another domain in an intranet.
- A firewall is between the Perimeter Network and the intranet. The excessive delay on the first transaction occurs because UDP port 88 (Kerberos) is blocked.
- The retry and the retry interval for the Kerberos request equal an excessive delay (over 100 seconds).
To make sure that you are experiencing the problem that is described in this article, confirm that the MS DTC transaction trace log file contains the following data:
;eventid=TRANSACTION_PROPOGATION_FAILED_CONNECTION_DOWN_FROM_REMOTE_TM ;tx_guid=f11cd9c9-7b8a-41e3-a904-4840123bacf7 ;"failed to propogate transaction to child node ' ComputerName ' because the connection with the remote transaction manager went down"Notes
- In this data, the word "propogation" is a misspelling for the word "propagation." The word "propogate" is a misspelling for the word "propagate."
- For more information about how to enable and view MS DTC transaction trace data, see the "More Information" section.
- Click Start, click Run, type regedit, and then click
- Locate the following registry subkey: HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC
- Right-click MSDTC, point to
New, and then click DWORD Value.
- Type CmMaxNumberBindRetries, and then press ENTER.
- Right-click CmMaxNumberBindRetries, and then click Modify.
- Click Decimal.
- In the Value data box, type
This value increases the length of time that the client computer waits for the bind packet response from the server computer. This value is double the number of seconds before the client computer stops the transaction if the client computer does not receive the bind packet response. For example, a value of 60 equals 30 seconds.
Note The value of 60 is only a recommended value. Additional testing on your configuration may be required.
- Click OK.
- Restart MS DTC.