STATUS_TM_VOLATILE (0XC019003B) — Transaction Manager Log Missing Fix
This error means the Transaction Manager lost its log file. The quick fix is restarting the MSDTC service or clearing a corrupt log. I'll show both.
You're staring at error 0XC019003B — and it's almost always the MSDTC log
I've seen this on SQL Server clusters, COM+ apps, and even old BizTalk servers. The culprit is the Microsoft Distributed Transaction Coordinator (MSDTC) log file. It either got deleted, corrupted, or the service can't read it. Let's fix it fast.
The quick fix: restart MSDTC and clear the log
- Open an elevated Command Prompt (Run as Administrator).
- Stop MSDTC:
net stop msdtc - Delete the log directory contents (don't delete the folder):
del /q /s C:\Windows\System32\MsDtc\Log\*.* - Restart MSDTC:
net start msdtc - Test your transaction again.
That's it. 90% of the time this clears the error. If the service won't start, skip to the next section.
Why this works
MSDTC writes transaction state to a log file at C:\Windows\System32\MsDtc\Log. When that log gets corrupted — from a crash, disk error, or even a failed Windows update — the service can't recover transactions. Deleting the log forces MSDTC to create a fresh one. No data loss here: the log tracks in-flight transactions, not committed data. If a transaction was mid-flight, it'll fail, but your database won't be harmed.
When the quick fix doesn't work
Sometimes the log directory itself is missing or permissions are wrecked. Check these:
- Missing directory: Run
mkdir C:\Windows\System32\MsDtc\Logthen retry the net start. - Corrupt registry keys: Open regedit and go to
HKLM\SOFTWARE\Microsoft\MSDTC. Delete theLogsubkey (back it up first). Then restart MSDTC — it'll recreate the key. - Third-party conflicts: Antivirus tools sometimes lock the log file. Temporarily disable real-time protection, restart MSDTC, then re-enable.
Less common variations of this error
SQL Server distributed transactions
If you're getting 0XC019003B when running linked server queries or distributed transactions across SQL Server instances, the fix above still applies. But also check that the MSDTC network access is configured correctly:
- Open Component Services (dcomcnfg.exe).
- Expand Component Services > Computers > My Computer > Distributed Transaction Coordinator.
- Right-click Local DTC and select Properties.
- Under Security, ensure Network DTC Access is checked. Also check Allow Inbound and Allow Outbound.
- Apply and restart MSDTC.
COM+ applications
Old COM+ apps (still found in some finance systems) sometimes trigger this. The fix is the same, but you might also need to re-register the COM+ application via regsvr32 after clearing the log. Run regsvr32 %SystemRoot%\System32\comsvcs.dll then restart MSDTC.
Cluster environments (Windows Server Failover Cluster)
In a cluster, MSDTC runs as a clustered resource. Don't clear the log directly — that can break the resource state. Instead, take the MSDTC resource offline, then bring it online. The cluster will recreate the log automatically. If that fails, delete the MSDTC resource and recreate it via the Failover Cluster Manager.
Prevention tips
- Schedule regular MSDTC log cleanup. Old logs don't matter after transactions complete. A weekly script that restarts MSDTC during maintenance windows prevents log bloat and corruption.
- Monitor disk health. Most log corruptions I've seen trace back to bad sectors on the system drive. Run
chkdsk /rquarterly on C:. - Don't let antivirus scan the MSDTC directory. Exclude
C:\Windows\System32\MsDtcfrom real-time scanning. Antivirus locking the log is a common trigger. - Backup the registry key. Before any major Windows update, export
HKLM\SOFTWARE\Microsoft\MSDTC. Updates sometimes corrupt this key.
One last thing: If you're still seeing 0XC019003B after all this, check the Application Event Log for MSDTC source events. They'll tell you exactly which file it's failing to read. Then you can target your fix.
Was this solution helpful?