Troubleshooting Guide: Error 8509 – MS DTC Transaction Import Failed
Why This Error Happens
Error 8509 occurs when SQL Server 2025 attempts to enlist a transaction with the Microsoft Distributed Transaction Coordinator (MS DTC) but the import fails due to a misconfigured or disabled DTC service, blocked network communication between participating servers, or insufficient security permissions on the DTC component. This is commonly caused by the “Network DTC Access” setting being disabled, firewall rules blocking RPC ports required by DTC, or authentication mismatches (such as “No Authentication Required” vs. “Mutual Authentication”) between the two systems involved in the distributed transaction. In some cases, a corrupted DTC configuration in the registry or CID (Component Identifier) conflicts between servers can also trigger this failure.
Step-by-Step Resolution Guide
Step 1: Enable and Configure Network DTC Access
- Open Component Services (
comexp.msc) on both the SQL Server and the remote server involved in the transaction. - Navigate to
Component Services > Computers > My Computer > Distributed Transaction Coordinator > Local DTC. - Right-click Local DTC, select Properties, and go to the Security tab.
- Check Network DTC Access, Allow Remote Clients, Allow Inbound/Outbound, and set Transaction Manager Communication to Mutual Authentication Required (or No Authentication Required only in trusted/test environments).
- Restart the MS DTC service after applying changes.
Step 2: Open Required Firewall Ports
- Ensure that RPC Endpoint Mapper (TCP port 135) is open on both Windows Server 2025 and Windows 11 machines.
- Allow the
msdtc.exeprocess through Windows Defender Firewall:
netsh advfirewall firewall add rule name="MSDTC" program="%windir%\System32\msdtc.exe" action=allow
- If using a dynamic RPC port range, confirm the range is open by checking:
netsh int ipv4 show dynamicport tcp
- Restart the Distributed Transaction Coordinator service after firewall changes.
Step 3: Verify Service Account Permissions
- Open
services.mscand confirm the Distributed Transaction Coordinator service is running under the Network Service account (default and recommended). - Ensure this account has the “Impersonate a client after authentication” and “Act as part of the operating system” user rights via
secpol.mscunder Local Policies > User Rights Assignment. - If SQL Server is running under a custom service account, confirm it has
db_owneror appropriate rights to initiate distributed transactions.
Step 4: Synchronize DTC Configuration Between Servers
- On both machines, confirm the DTC security settings (Step 1) are identical to avoid authentication mismatches.
- If using a cluster or AlwaysOn Availability Group, verify that a dedicated Clustered MSDTC resource is configured and online in Failover Cluster Manager.
- Restart MS DTC service on all nodes:
net stop msdtc && net start msdtc
Step 5: Rebuild DTC Configuration (If Corrupted)
- If the issue persists, reset the DTC log and configuration:
msdtc -uninstall
msdtc -install
- Restart the server to fully reinitialize the DTC service and registry keys.
Alternative or Verification Steps
- Use the DTCPing tool or run a test distributed transaction via
BEGIN DISTRIBUTED TRANSACTIONin SSMS to confirm successful enlistment between servers. - Check the Windows Event Viewer under
Applications and Services Logs > Microsoft > Windows > DistributedTransactionCoordinatorfor confirmation that no further MSDTC-related errors are logged after applying the fix.