MSDTC disabling and consequence

1. MSDTC introduction

MSDTC is an acronym for Microsoft Distributed Transaction Coordinator. As the name says, MSDTC is a Windows service providing transaction infrastructure for distributed systems. In this case, a transaction means a general way of structuring the interactions between autonomous agents in a distributed system.

To guarantee the ACID  properties of any action that user performs changing resource on our Identify system, we must rely on it. MSDTC is especially important for distributed transaction.

The problem of MSDTC lies on the amount of efforts we need to set up MSDTC right, especially on high secure Windows servers in firewall rules forbid necessary ports and networking traffics by default. Another problem is that Azure SQL doesn’t have support for MSDTC.

2. A new setting to enable and disable MSDTC

Identify now provides a way to enable and disable MSDTC usage via Identify*Admin:

The advantage of disabling MSDTC usage is that Identify doesn’t need it to function properly anymore and thus simplifying the installation process a lot. This also enables Identify to be deployable with Azure SQL as a service.

However, please note that disabling MSDTC might also have some side issues. When a change to Identify’s data requires a cross-database transaction, for instance updating a user also leads to inserting an auditing entry into the Audit database, we cannot guarantee ACID for it without MSDTC.

The “Enable MSDTC usage” setting will be off by default when you install a new Identify tenant.

3. Troubleshooting

MSDTC is a system-wide setting and thus you should restart IIS after changing its value.

When “Enable MSDTC usage” is off, you could turn off MSDTC windows service  or do not need to care about it anymore.

When “Enable MSDTC usage” is on, if you encounter any problem with MSDTC, please consult our MSDTC troubleshooting guideline.