| Previous | Next |
| hrDatabaseDuplicate | hrDatabaseNotFound |
hrDatabaseInUse
Locate the failure in the Jet call chain
hrDatabaseInUse means the database still has open users or handles that block detach, delete, or exclusive work.
This is the legacy Directory Service backup/restore HRESULT form of JET_errDatabaseInUse (0xC80004B2).
The key comparison is: hrDatabaseLocked can reflect a lock state; this result normally means active use through ESE. The first useful observation is to enumerate sessions, JET_DBID values, open tables, transactions, backup/maintenance activity, and service owners. This evidence separates file identity, attachment, open-handle ownership, lock state, and structural validity.
The ESE objects in play
| Diagnostic layer | database file, attachment state, JET_DBID ownership, and database lifecycle |
|---|---|
| Typical API surface | JetCreateDatabase, JetAttachDatabase, JetOpenDatabase, JetCloseDatabase, and JetDetachDatabase |
| Code-specific condition | the database still has open users or handles that block detach, delete, or exclusive work |
| First corrective direction | quiesce callers and close tables and database handles before retrying the lifecycle operation |
Creating an empty file is not a valid substitute for a missing or corrupted ESE database. Attachment is an instance relationship; opening a database returns a session-scoped database ID.
Questions the logs must answer
- Code-specific observation: enumerate sessions, JET_DBID values, open tables, transactions, backup/maintenance activity, and service owners.
- open tables, transactions, maintenance, and recovery activity using the database; associate it with this result rather than with a later generic exception.
- the canonical database path and file identity; associate it with this result rather than with a later generic exception.
- the instance attachment list plus every session-scoped JET_DBID.
Response and verification
- Freeze the failing request context and record
0xC80004B2, the Jet API name, and the current instance/session ownership. - Verify the code-specific precondition: enumerate sessions, JET_DBID values, open tables, transactions, backup/maintenance activity, and service owners.
- Apply the targeted fix: quiesce callers and close tables and database handles before retrying the lifecycle operation.
- Before retrying the operation, reconcile attachment, open/closed state, file identity, and database header status.
Distinguishing signals
hrDatabaseDuplicate | database creation selected a path or identity that already exists |
|---|---|
hrDatabaseInvalidName | the database-specific name fails rules beyond a generic object name check |
hrDatabaseCorrupted | the database cannot be trusted as a coherent ESE file or is unavailable in a way reported as corruption |
Actions that can hide or worsen the problem
- Do not create an empty database at the expected path as a substitute for the missing or damaged artifact.
- Do not force detach or delete while owners and recovery state are unknown.
Technical references
Looking for a different code? Search another status or error code.
