How to fix Error 3979 on Windows Server 2025 / Windows 11

Why This Error Happens

Error 3979 occurs when the SQL Server Transaction Manager (TM) — responsible for coordinating distributed transactions through MSDTC (Microsoft Distributed Transaction Coordinator) — fails to receive an acknowledgment from a participating resource manager within the expected internal timeout window. This is typically caused by network latency between nodes, a misconfigured or stalled MSDTC service, or blocking/locking contention that prevents the transaction log from flushing the commit record in time. In some cases, a corrupted MSDTC security configuration or outdated firewall rule silently drops the TM handshake packets, causing the request to be abandoned.

Step-by-Step Resolution Guide

Step 1: Verify and Restart the MSDTC Service

  • Open Services.msc on Windows Server 2025 / Windows 11.
  • Locate Distributed Transaction Coordinator, right-click, and select Restart.
  • Alternatively, run in an elevated PowerShell session:
  Restart-Service -Name MSDTC -Force
  • Confirm the service startup type is set to Automatic to prevent recurrence after reboot.

Step 2: Check Network and Firewall Configuration

  • Ensure TCP port 135 (RPC endpoint mapper) and the dynamic RPC port range are open between all nodes involved in the distributed transaction.
  • Run dtcping.exe between the SQL Server host and the remote TM to confirm two-way communication.
  • In Windows Defender Firewall with Advanced Security, verify inbound/outbound rules for “Distributed Transaction Coordinator” are enabled on both source and target servers.

Step 3: Review SQL Server Transaction Log and Blocking Sessions

  • Run the following query to identify long-running or blocked transactions tied to the TM request:
  SELECT session_id, blocking_session_id, wait_type, wait_time, status
  FROM sys.dm_exec_requests
  WHERE blocking_session_id <> 0;
  • If a session is holding locks for an extended period, terminate it safely using KILL <session_id>; after confirming it is not business-critical.
  • Check the transaction log file size and growth settings in SQL Server Management Studio (SSMS) under Database Properties > Files — ensure Autogrowth is not restrictively capped.

Step 4: Reconfigure MSDTC Security Settings

  • Open Component Services (dcomcnfg.exe) → Computers → My Computer → Distributed Transaction Coordinator → Local DTC → Properties → Security tab.
  • Enable Network DTC Access, Allow Inbound/Outbound, and Mutual Authentication Required (or Incoming Caller Authentication Required if operating in a mixed-trust environment).
  • Apply changes and restart the MSDTC service again to commit the new configuration.

Step 5: Apply Latest SQL Server 2025 Cumulative Update

  • Confirm your instance build number via:
  SELECT @@VERSION;
  • Download and install the latest Cumulative Update (CU) from the Microsoft Update Catalog, as several TM timeout handling fixes are often bundled into servicing updates.
  • Reboot the server after installation to ensure the TM driver stack reloads cleanly.

Alternative or Verification Steps

  • Re-run the distributed transaction that originally failed and confirm Error 3979 no longer appears in the SQL Server Error Log or Windows Event Viewer (Application log).
  • If the issue persists, enable Trace Flag 3904 temporarily to capture verbose TM diagnostic logging, then review sys.dm_tran_active_transactions for transactions stuck in a PREPARED state before escalating to Microsoft Support.