Enabling MSDTC

Current version: 8.2

Commerce Server uses MSDTC to guarantee transactions in the Orders and Catalog subsystems. You will need to enable MSDTC on all servers running Commerce Server, as well as the SQL Server, unless SQL Server and Commerce Server are running on the same machine.

Configuration steps:

  1. Click Start, Run, type dcomcnfg, and then click OK to open Component Services.

  2. In the console tree, click Component ServicesComputersMy Computer, and then click to expand Distributed Transaction Coordinator.

  3. Right-click Local DTC, and then click Properties to display the Local DTC Properties dialog box.

  4. Click the Security tab.

  5. In the Security Settings section, click Network DTC Access.

  6. In the Client and Administration section, select Allow Remote Clients and Allow Remote Administration.

  7. In the Transaction Manager Communication section, select Allow Inbound and Allow Outbound.

  8. In the Transaction Manager Communication section, select Mutual Authentication Required, and select Incoming Caller Authentication Required if you are running MSDTC in a cluster. No Authentication Required is the recommended selection.

  9. Select Enable XA Transactions, and then click OK.

  10. Repeat steps 1 through 9 on the other Web servers.

  11. Use DTCPing.exe to validate the connection between the Web server and the computer that is running SQL Server or an SQL cluster depending on your configuration. To obtain the DTCPing.exe tool, go to http://go.microsoft.com/fwlink/?LinkId=72166.

  12. For more information about how to troubleshoot MSDTC, go to http://go.microsoft.com/fwlink/?LinkId=72203.

Be aware that if you are working in Azure, MSDTC is not supported. Commerce Server uses MSDTC only in the Orders pipeline framework to manage the updating of the inventory database during checkout. You can set the Orders pipeline framework to not use MSDTC by setting enableTransactions=”false” on the Orders element in your Commerce Server configuration. For example, for SCpbCS deployment inside \Website\App_Config|CommerceServerCore.config: <orders honorStatus="true" newOrderStatus="NewOrder" enableTransactions="false"> ... </orders>

Do you have some feedback for us?

If you have suggestions for improving this article,