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