BizTalk and MSDTC , DTC , Transactions

Thursday, June 16, 2011
Microsoft Distributed Transaction Coordinator (MSDTC) is an important component in a BizTalk environment. Especially in multi-server environment it is mandatory and needs to setup and configured properly before one starts configuring BizTalk features like group, BRE or BAM. During configuration of these BizTalk features, databases like BizTalkMsgBoxDb, BizTalkMgmtDb, BizTalkDTADb (tracking archiving), BizTalkRuleEngineDb, or BAMPrimairyImport and other (BAMStar, ect) are created on database server. MSDTC is component inside Component Services (Windows 2003, Windows 2008). Below is a screen from DTC inside Component Services Windows Server 2008.
DTC 
By right clicking Local DTC you can configure it via three tabs (Tracing, Logging, and Security). To enable MSDTC on Windows Server 2003 or 2008 you can find that on this MSDN page.
Below is a screen from DTC inside Component Services Windows Server 2003.
MSDTC W2K3
There are three tabs available and first on is Tracing (this accounts W2K8):
DTC Tracing
Above screens show default settings (and is 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:
DTC 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 DTC work properly:
DTC Security 
Note: DTC account can be changed, look here how and consider if it is necessary. It can be trickydepending 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).

Configuration OptionDefault Value W2K3Default Value W2K8Recommended value
Network DTC AccessEnabledEnabledEnabled
Client and Administration   
Allow Remote ClientsDisabledDisabledDisabled
Allow Remote AdministrationEnabledDisabledDisabled
Transaction Manager Configuration   
Allow InboundEnabledEnabledEnabled
Allow OutboundEnabledEnabledEnabled
Mutual Authentication RequiredDisabledDisabledEnabled if all remote machines are running Win2K3 SP1 or XP SP2 or higher.
Incoming Caller Authentication RequiredDisabledDisabledEnabled if running MSDTC on cluster.
No Authentication RequiredDisabledDisabledEnabled if remote machines are pre-Windows Server 2003 SP1 or pre- Windows XP SP2.
Enable XA TransactionDisabledDisabledEnabled if communicating with an XA based transactional system such as when communicating with IBM WebSphere MQ using the MQSeries adapter.
To validate the connection between BizTalk Server and SQL Server machines you can use DTCPing. Also take into consideration that firewall can block access. To configure firewall on W2K3 you can gohere and for W2K8 here.
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. For more information about DTCPing, see How to troubleshoot MS DTC firewall issues.
To troubleshoot MSTDC you can also find valuable information at this MSDN page and summary of other useful tools here. I hope that if you are building a multi-server BizTalk environment that this information gathered here can help you setup and configure MSDTC properly before you start configuring BizTalk features.


Source SteefJanwiggersBlog

No comments:

Post a Comment

Post Your Comment...