0X8004D10C

XACT_E_LU_BUSY (0x8004D10C) Fix – Resource Locked

Windows Errors Intermediate 👁 12 views 📅 Jul 11, 2026

This error means a transaction resource is locked by another process. The quick fix is killing the hanging COM+ or MSDTC process and restarting the service.

The Quick Fix – Kill the MSDTC Process

This error pops up when a distributed transaction resource gets locked by a previous operation that didn't clean up. The culprit here is almost always a hung MSDTC (Microsoft Distributed Transaction Coordinator) process or a stuck COM+ application.

Don't bother restarting the whole server – that's overkill. You just need to kill the process holding the lock.

  1. Open Task Manager (Ctrl+Shift+Esc).
  2. Go to the Details tab.
  3. Find msdtc.exe. If there's more than one, look for the one with high CPU or memory usage.
  4. Right-click it and select End task. Confirm if asked.
  5. Then open Services (services.msc).
  6. Locate Distributed Transaction Coordinator. Right-click and choose Restart.

That's usually it. The error should clear right away.

Why This Works

MSDTC manages transactions across multiple resources – databases, queues, file systems. When a transaction hangs, it holds a lock on a resource. The system sees that lock and throws XACT_E_LU_BUSY (0x8004D10C). Killing the process releases the lock. Restarting the service resets MSDTC's state cleanly.

This isn't a configuration issue. It's a resource contention problem. The lock is real – something didn't finish its work. You're just forcing it to let go.

Less Common Variations

COM+ Application Hang

Sometimes the lock isn't in MSDTC but in a COM+ application that uses transactions. Check the Component Services console (dcomcnfg). Expand Component Services > Computers > My Computer > COM+ Applications. Look for any application with status Running that shouldn't be. Right-click and Shut down.

Distributed Transaction Coordinator Service Won't Start

If you can't restart MSDTC because the service itself is stuck, you might have a corrupted log file. The MSDTC log is at %SystemRoot%\System32\Msdtc\Log. Stop the service, rename the Msdtc.log file (maybe to Msdtc.old.log), then restart the service. It'll create a fresh log. This is rare but I've seen it on older Windows Server 2008 R2 boxes.

Firewall or Network Issue

On rare occasions, the error appears when MSDTC can't communicate with another node in a transaction. Check that the firewall allows RPC dynamic ports (usually 49152-65535) and that the Remote Registry service is running on both machines. This one's a pain – if you're not in a cluster or linked systems, skip it.

Prevention

You can't fully prevent this error – transactions can always hang. But you can reduce how often it happens.

  • Set timeouts on your transactions. In SQL Server, use SET LOCK_TIMEOUT 5000 (5 seconds). In .NET, set TransactionScope timeout explicitly. Long-running transactions are the main cause.
  • Monitor MSDTC health. Set up a simple script that checks if msdtc.exe has run for more than 30 minutes without a commit. Kill it automatically if so.
  • Keep Windows updated. Some older builds of Windows 10 (pre-1809) had a bug that caused MSDTC to hang more often. Apply patches.
  • Don't mix transaction types. Avoid crossing between local and distributed transactions if you can. That's where locks get sticky.

If you keep seeing this error, check your application code for missing Commit or Rollback calls. Something isn't closing the transaction properly. That's a dev fix, not sysadmin, but it's worth flagging.

Short version: Kill msdtc.exe, restart the service. 90% of the time, you're done.

Was this solution helpful?