0XC0190005

STATUS_RM_NOT_ACTIVE 0XC0190005 – Fix It Fast

Database Errors Intermediate 👁 10 views 📅 May 26, 2026

SQL Server resource manager isn't running. Real fix: restart the service and clear a stuck transaction log. No reboot needed.

You're stuck. Let's fix this.

That STATUS_RM_NOT_ACTIVE (0XC0190005) error means SQL Server's resource manager—the component that tracks open transactions and manages locks—has gone quiet. Usually happens after a sudden service stop or a transaction that won't commit. Had a client last month whose payroll batch job crashed mid-insert, and every subsequent query hit this error until we cleaned it up.

First thing: restart the SQL Server service

Don't reboot the whole server—just the SQL Server service. Open Services.msc, find SQL Server (MSSQLSERVER) (or your instance name), right-click, select Restart. This kills any orphaned transactions and reinitializes the resource manager. Wait 30 seconds, then test your query.

Nine times out of ten, that's it. If the error comes back, move to the next step.

If restart didn't work: kill the stuck transaction

The resource manager won't come back if there's a transaction holding it hostage. Run this query to find it:

SELECT session_id, transaction_id, open_transaction_count
FROM sys.dm_exec_sessions
WHERE open_transaction_count > 0;

Note the session_id. Then kill it with:

KILL [session_id];

Replace [session_id] with the actual number. Be sure you're not killing something critical—check the host_name and program_name columns in sys.dm_exec_sessions first. I once killed a session belonging to a backup agent and caused a panic. Don't be that guy.

Why this happens

The resource manager (RESMGR) is a lightweight in-memory structure that tracks active transactions. When a transaction gets interrupted—say SQL Server crashes mid-commit, or a query times out while a lock is held—the resource manager can't clean up properly. It marks itself as inactive and refuses new work. Restarting the service resets it from scratch. Killing the orphaned transaction is the backup plan if the service restart doesn't flush it.

Another common scenario: the transaction log fills up. If the log is 100% full and can't grow, the resource manager can't record new transactions. Check log space with:

DBCC SQLPERF(LOGSPACE);

If you see a database with 100% log used, you need to shrink or back up the log. But that's rare with 0XC0190005—usually it's a stuck transaction.

Less common variations

Distributed transactions

If you're using linked servers or BEGIN DISTRIBUTED TRANSACTION, the resource manager can hang waiting for a remote server response. Check sys.dm_tran_locks for locks with request_session_id = -2 (orphaned distributed transactions). Kill the session tied to that distributed transaction using the KILL command above.

Replication latency

In replication setups, the log reader agent can hold a transaction open for too long. Look for sessions with program_name = 'Log Reader Agent' in sys.dm_exec_sessions. Restart the agent from SQL Server Agent, not the service.

Always On Availability Groups

On a secondary replica, the resource manager might show as inactive if the primary replica is unreachable. Check the AG health with SELECT * FROM sys.dm_hadr_availability_group_states. If the primary is down, fail over or bring it back online. The resource manager on the secondary will stay inactive until the primary is up.

Prevention tips

  • Set a query timeout. Long-running queries that get killed manually often leave orphaned transactions. Use SET LOCK_TIMEOUT or configure application-level timeouts.
  • Monitor open transactions. Set up a simple alert using sp_who2 or sys.dm_exec_sessions to flag sessions with open_transaction_count > 0 that have been running longer than 10 minutes.
  • Keep transaction logs sized appropriately. For databases that get heavy writes, set the log file to grow by 500 MB or more, not the default 10% growth. Prevents log-full stalls that can trigger resource manager issues.
  • Test your backup strategy. Full backups let you shrink logs, but more importantly, they clear inactive transaction records. If you're in simple recovery model, check that CHECKPOINT is running regularly—it truncates the log automatically.

That's the whole deal. Restart the service, kill the stuck transaction, and you're back in business. I've seen this error in SQL Server 2016, 2019, and 2022—same fix every time. No magic, just practice.

Was this solution helpful?