--- title: "Transactions and Locking" id: xact-locking pg_version: "20devel" --- ## 67.2. Transactions and Locking The transaction IDs of currently executing transactions are shown in [pg_locks](view-pg-locks.md) in columns `virtualxid` and `transactionid`. Read-only transactions will have `virtualxid`s but NULL `transactionid`s, while both columns will be set in read-write transactions. Some lock types wait on `virtualxid`, while other types wait on `transactionid`. Row-level read and write locks are recorded directly in the locked rows and can be inspected using the [Section F.32](pgrowlocks.md) extension. Row-level read locks might also require the assignment of multixact IDs (`mxid`; see [Section 24.1.5.1](routine-vacuuming.md#vacuum-for-multixact-wraparound)).