Most BizTalk Server runtime operations require Microsoft Distributed Transaction Coordinator (MSDTC) support to ensure that the operations are transactionally consistent. If MSDTC transaction support is not available, then the associated BizTalk Server runtime operations cannot proceed. The components of BizTalk that are commonly affected when MSDTC transaction support is not configured correctly include (but are not limited to) the Single Sign-On Service, BizTalk host instances, and any SQL Server instances that are connected to by BizTalk Server. This section contains information that describes MSDTC related errors and steps that can be followed to diagnose and resolve problems with MSDTC.
Errors similar to the following may occur on BizTalk Server when MSDTC transaction support is not configured correctly on the computers in a BizTalk environment:
To resolve MSDTC configuration errors, follow the steps below.
Successful MSDTC transactions between computers require that the client computer is able to resolve the NetBIOS name of the server computer to the correct IP address and the server computer is able to resolve the NetBIOS name of the client computer to the correct IP address. To verify that NetBIOS name resolution works in both directions (client to server and server to client) follow these steps: Note: The NetBIOS name is also commonly referred to as the Network name.
ipconfig /all
ping <NetBIOS name of server computer>
ping <NetBIOS name of client computer>
ping -a <IP Address associated with client computer NetBIOS name>
ping -a <IP Address associated with server computer NetBIOS name>
If NetBIOS name resolution is not successful in either direction or if reverse name lookup fails then make the appropriate entries in the DNS server, NetBIOS name server, HOSTS file, or LMHOSTS file to correct the problem. Note: The method of name resolution used by the computer varies depending on the NetBIOS node type of the computer. For more information about NetBIOS node types, see NetBIOS Name Resolution .
MSDTC functionality over the network depends upon RPC functionality over the network. RPC functionality through a firewall requires that specific ports are open to accommodate RPC dynamic port allocation. If a firewall is in place between the BizTalk Server and remote servers, follow the steps in How to configure RPC dynamic port allocation to work with firewalls to accommodate RPC dynamic port allocation.
Windows Server 2003 SP1, Windows XP SP2, Windows Server 2008 SP2, and Windows Vista provide security enhancements that govern how MSDTC is accessed over a network. By modifying the MSDTC security settings, you control how MSDTC communicates with remote computers over the network. This table lists the recommended values for the options that are available when configuring MSDTC security settings:
Network DTC Access
Disabled
Enabled
Client and Administration
Allow Remote Clients
Allow Remote Administration
Transaction Manager Communication
Allow Inbound
Allow Outbound
Mutual Authentication Required
Enabled if all remote machines are running Windows Server 2003 SP1 or Windows XP SP2 or higher, and are configured with “Mutual Authentication Required”.
Incoming Caller Authentication Required
Enabled if running MSDTC on cluster.
No Authentication Required
Enabled if remote machines are pre-Windows Server 2003 SP1 or pre- Windows XP SP2.
Enable TIP
Enabled if running the BAM Portal.
Enable XA Transactions
Enabled if communicating with an XA based transactional system such as when communicating with IBM WebSphere MQ using the MQSeries adapter.
After applying these changes, the MSDTC service will be restarted.
To access the MSDTC security configuration options follow these steps:
On Windows Server 2003 SP1 and Windows XP SP2:
On Windows Server 2008, Windows Vista, and Windows 7:
Note: Depending on the changes that were made, you may need to reboot the computer to enact the changes. If you are still encountering problems after applying changes and restarting the MSDTC service, reboot the computer on which the changes were made to ensure that the changes take effect.
The default setting is to grant the Everyone group the Access this computer from the network user right. Therefore this user right will not need to be changed unless the default setting has been modified. If the No Authentication Required configuration option is enabled then the Access this computer from the network user right does not apply to the client(s) computer account.
To change the users or groups that are granted the "Access this computer from the network" user right, follow these steps:
To change the users or groups that are included in the Deny access to this computer from the network user right, follow these steps:
Windows XP SP2 enhances security by requiring authenticated calls to the RPC interface. This functionality is configurable through the EnableAuthEpResolution and RestrictRemoteClients registry keys. To ensure that remote computers are able to access the RPC interface on a Windows XP SP2 computer, follow these steps:
Warning: Incorrect use of Registry Editor may cause problems requiring you to reinstall your operating system. Use Registry Editor at your own risk. For more information about how to back up, restore, and modify the registry, see the Microsoft Knowledge Base article "Description of the Microsoft Windows registry" at Description of the Microsoft Windows registry.
EnableAuthEpResolution
0 (disabled)
1
RestrictRemoteClients
1 (enabled)
0
The Windows Firewall service may block MSDTC communications between computers. To ensure that MSDTC communications are not blocked between computers, add msdtc.exe to the Windows Firewall exception list if the Windows Firewall service is running.
On Windows Server 2003 SP1 and Windows XP:
Note: Launch a command prompt, type echo %system32% and press Enter to determine the location of the \System32 directory on this computer.
On Windows Server 2008 and Windows Vista:
Use the DTCTester utility to verify transaction support between two computers if SQL Server is installed on one of the computers. The DTCTester utility uses ODBC to verify transaction support against a SQL Server database. For more information about DTCTester see How to Use DTCTester Tool.
Use DTCPing to verify transaction support between two computers if SQL Server is not installed on either computer. The DTCPing tool must be run on both the client and server computer and is a good alternative to the DTCTester utility when SQL Server is not installed on either computer. For more information about DTCPing, see How to troubleshoot MS DTC firewall issues.
Important: If DTCPing returns the warning that “WARNING:the CID values for both test machines are the same” then follow the steps in the section Ensure that MSDTC is assigned a unique CID value to accommodate proper MSDTC functionality between the test machines.
The MSDTC feature of the Windows operating system requires unique CID values to ensure that MSDTC functionality between computers works correctly. Disk duplicate images of Windows installations must have unique CID values or MSDTC functionality may be impaired. This can occur when using virtual hard disks to deploy an operating system to a virtual machine.
To determine if MSDTC CID values for computers that are running the Windows operating system are unique, check the values for the entries under the HKEY_CLASSES_ROOT\CID registry key on both computers. If these values are not unique for each computer then follow the steps in the section Consider reinstalling the Distributed Transaction Coordinator service if other troubleshooting steps are not successful to reinstall MSDTC on one of the computers, which will then generate unique MSDTC CID values for that computer and accommodate proper MSDTC operations.
A problem with the winspool.drv file can prevent the MSDTC service from initializing on a Windows Server 2003 x64 Edition based computer. For more information, see You may receive error messages when you run a 32-bit program on a 64-bit Windows Server 2003-based computer.
In certain scenarios, it is possible that an existing MSDTC connection between a client and server is closed and subsequent attempts to use this connection will result in the following error message: New transaction cannot enlist in the specified transaction coordinator (0x8004d00a) For more information, see Error message when you try to start a transaction in MS DTC: "New transaction cannot enlist in the specified transaction coordinator".
In certain scenarios, especially when configuring BizTalk Server log shipping, you might encounter this error. This is an issue with SQL Server and is fixed in the hotfix available from http://support.microsoft.com/kb/954950.
If other attempts at troubleshooting problems with MSDTC are not successful consider uninstalling and reinstalling MSDTC. Follow these steps to uninstall and reinstall MSDTC:
Click Start.
Click Run, type cmd, and then click OK.
If the Taskbar and Start Menu Properties of your Windows Server 2008 or Windows Vista computer is configured to use the Classic Start menu then click Run, type cmd, and then click OK. Otherwise, In the Start Search box, type cmd, and then press CTRL+SHIFT+ENTER.
If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.
Read suggested related topics:
Maheshkumar S Tiwari edited Revision 19. Comment: Minor formatting
Steef-Jan Wiggers edited Revision 18. Comment: Minor edits
Steef-Jan Wiggers edited Revision 15. Comment: Minor edit
Great article
Why cannot these steps be automated using some utility?
Great article Nitin, you seem to have covered almost all possible scenarios when it comes to MSDTC and BizTalk. Maybe a little points to have under the "important" maybe is to keep a screenshot of the MSDTC, since Microsoft security patches might change the settings.
All information is at one place. Really nice to see. Sometime it is really difficult to resolve MSDTC related problem.
MSDTC is an important component in BizTalk architecture and needs to be configured appropriately. If that fails than this is a good guide to have in reach.