Record locking table (_UserLock)
- Last Updated: February 11, 2026
- 1 minute read
- OpenEdge
- Version 13.0
- Documentation
Record locking table (_UserLock)
The _UserLock VST displays the contents of the record locking table, such as user name, chain, number, record ID, lock type, and flags. _UserLock reports the first 512 entries for a particular user for each request. If a single user has more than 512 locks, the locks will not be displayed in the _UserLock array.
Note: Use caution when querying _UserLock; doing so can consume large quantities of system
resources. Access _UserLock through database monitoring tools written in ABL and limit
querying execution paths that are frequently accessed.
| Field name | Data type | Description |
|---|---|---|
| _UserLock-Chain | INTEGER | Type of chain should always be REC, the record lock chain |
| _UserLock-Flags | CHARACTER | Any of four possible types of flags: L (LIMBO lock), P (PURGED lock entry), Q (QUEUED lock request), and U (UPGRADE request)Flags for the lock—the flags specify a share lock (S), exclusive lock (X), a lock upgraded from share to exclusive (U), a lock in limbo (L), a queued lock (Q), a lock kept across transaction end boundary (K), a lock is part of a JTA transaction (J), a lock is in create mode for JTA (C), or a lock wait timeout has expired on this queued lock (E) |
| _UserLock-HWM | INTEGER | Maximum number of locks ever held by this user |
| _UserLock-Misc | INTEGER | Miscellaneous information |
| _UserLock-Name | CHARACTER | User name of the process owning the lock |
| _UserLock-Recid | INT64 | Record ID for the record being locked |
| _UserLock-Table | INTEGER | Table number |
| _UserLock-TenantId | INTEGER | Tenant ID of the user |
| _UserLock-Type | CHARACTER | One of the three lock types: EXCL (EXCLUSIVE-LOCK), SHR (SHARE-LOCK), or NOLK (NO-LOCK) |
| _UserLock-Usr | INTEGER | User number of the process owning the lock |