Share via


BizTalk Server 2010: MSDTC

Introduction

Microsoft Distributed Transaction Coordinator (MSDTC) is an important component in a BizTalk environment. In both multi- or single machine environment it is mandatory and needs to be setup and configured properly before you start configuring BizTalk features like Group, BRE or BAM. During the configuration of these BizTalk features, the databases like BizTalkMsgBoxDb (MessageBox), BizTalkMgmtDb (Management), BizTalkDTADb (Tracking and Archiving), BizTalkRuleEngineDb, or BAMPrimaryImport and other (BAMStar, etc.) are created on the database server. MSDTC is a component inside Component Services (Windows 2003 (R2), Windows 2008(R2)). Below is a screenshot showing the DTC inside Component Services Windows Server 2008 R2.

Figure 1. Management Snap-in Component Services (click to enlarge).

Configuring MSDTC

By right clicking Local DTC you can configure it via three tabs (Tracing, Logging, and Security). To enable MSDTC on Windows Server 2003 (R2) or 2008 (R2) you can find that on this MSDN: Start and Stop MS DTC. Below is a screen from DTC inside Component Services Windows Server 2003 (R2):

Figure 2. MSDTC Properties Windows 2003.

Yet for Windows 2008 (R2) the UI has changed and when you right click on local DTC there are three tabs available and the first is Tracing:

Picture 3. Local DTC Properties - Tracing.

Above screens show default settings (and is the first tab shown if you right click local DTC –> Properties). There is an excellent explanation via official Distributed Services Support Team blog that explains what you can do here. Second tab is Logging:

Picture 4. Local DTC Properties - Logging.

This tab self-explanatory I think. The Microsoft Distributed Transaction Coordinator (MS DTC) log file is in the %windir%\system32\Msdtc directory by default. More on choosing where to put log file you can find here. The third tab is the most important one having the DTC work properly:

Picture 5. Local DTC Properties - Tracing

Note: DTC account can be changed, look here how and consider if it is necessary. It can be tricky depending on Operating Systems you are working. Depending on your Operating System you need to set the following settings (above shows the default settings on Windows 2008 (R2)).

Configuration Option Default Value W2K3 Default Value W2K8 Recommended value
Network DTC Access Enabled Enabled Enabled
Client and Administration      
Allow Remote Clients Disabled Disabled Disabled
Allow Remote Administration Enabled Disabled Disabled
Transaction Manager Configuration      
Allow Inbound Enabled Enabled Enabled
Allow Outbound Enabled Enabled Enabled
Mutual Authentication Required Disabled Disabled Enabled if all remote machines are running Win2K3 SP1 or XP SP2 or higher.
Incoming Caller Authentication Required Disabled Disabled Enabled if running MSDTC on cluster.
No Authentication Required Disabled Disabled Enabled if remote machines are pre-Windows Server 2003 SP1 or pre- Windows XP SP2.
Enable XA Transaction Disabled Disabled Enabled if communicating with an XA based transactional system such as when communicating with IBM WebSphere MQ using the MQSeries adapter.

Validate configuration

To validate the connection between BizTalk Server and SQL Server machines you can use DTCPing. Also take into consideration that the firewall can block your access. To configure the firewall:

Besides DTCPing there is also a tool called DTCTester. Latter utility is 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. DTCPing is 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.

Troubleshooting

Both DTCPing and DTCTester can be used to troubleshoot MSTDC. DTCPing, see How to troubleshoot MS DTC firewall issues. To troubleshoot MSTDC you can also find valuable information at MSDN: Troubleshooting Problems with MSDTC. Finally, you can also look at MSDN: Tools and Utilities to Use for Troubleshooting or TechNet Wiki article: BizTalk Server - Troubleshooting Problems with MSDTC.

See Also

Read suggested related topics:

Another important place to find a huge amount of BizTalk related articles is the TechNet Wiki itself. The best entry point is BizTalk Server Resources on the TechNet Wiki.