MDA_BLOCKTREE

Blocked processes

Comments

When a process must wait to acquire a lock, it is a waiter. The other process that already has the lock (and is causing the waiter to wait) is a blocker.

This collection contains rows for both the blocker processes and the waiter processes in the database. If the row is a blocker process, then BLOCKERKPID = 0 and BLOCKERSPID = 0. If the row is a waiter process, then the "BLOCKERxx" columns have information about its immediate blocker.

Waiters being blocked by a blocker can themselves also block other waiters, potentially forming a blocktree involving many processes. Thus, a row can be a waiter and a blocker, in some cases (and can involve different locks).

Many of the columns are similar to ones in MDA_PROCESS and MDA_LOCK.

ROWID

(KPID, LOCKID)

Columns

Name Data Type Description
INSTANCEID long Instance ID; 0 = non-CE
KPID long Kernel process ID
SPID long Session process ID
LOCKID long Lock ID
BLOCKERINSTANCEID long Blocker instance ID
BLOCKERKPID long Blocker kernel process ID; 0 = the row is a blocker process
BLOCKERSPID long Blocker session process ID (SPID); 0 = the row is a blocker process
BLOCKERLOCKID long Blocker lock ID
TABLEDBID long Database ID for the locked object
TABLEDBNAME string(32) Database name for the locked object
TABLENAME string(32) Name of locked object
LOCKTYPE string(32) Lock type:
  • exclusive intent
  • exclusive page
  • exclusive row
  • exclusive table
  • shared intent
  • shared next key
  • shared page
  • shared row
  • shared table
  • update row
  • update page
LOCKLEVEL string(32) Lock level (ROW, PAGE, TABLE, ADDRESS)
PAGENUMBER long Page # that is locked if LockType = PAGE
ROWNUMBER long Row # that is locked if LockType = ROW
FAMILYID long Session process ID (SPID) of the parent process, if this is a worker process (for parallel query)
BATCHID long Batch ID
DBNAME string(32) Database name
PROCDBNAME string(32) Database name of the current procedure, if applicable
PROCNAME string(32) Name of the current procedure, if applicable
LINENUMBER long Line number in the batch
WAITEVENTID long Wait event ID
LOGIN string(32) Login name
TEMPDBNAME string(32) Name of tempdb assigned to this process
BLOCKERFAMILYID long Blocker's SPID of its parent process, if the blocker is a worker process (for parallel query)
BLOCKERBATCHID long Blocker batch ID
BLOCKERDBNAME string(32) Blocker current database name
BLOCKERPROCDBNAME string(32) Blocker's database name for its current procedure, if applicable
BLOCKERPROCNAME string(32) Blocker's name of its current procedure, if applicable
BLOCKERLINENUMBER long Blocker line number in its batch
BLOCKERWAITEVENTID long Blocker wait event ID (why the blocker is still holding the lock)
BLOCKERLOGIN string(32) Blocker login name
BLOCKERTEMPDBNAME string(32) Blocker's name of the tempdb assigned to its process
TIMEBLOCKED long Duration of time blocked, in seconds
BLOCKEDCOUNT long Number of processes being blocked, if the row is a blocker process
ROOTBLOCKERBLOCKEDCOUNT long Total number of processes being blocked in the entire blocktree involving this row
MAXTIMEBLOCKED long Maximum duration of time blocked in the entire blocktree involving this row
LCNAME string(32) Logical cluster name, if Cluster Edition
HOSTNAME string(32) Host name
CMD string(32) General command type
APPNAME string(32) Application name
STATUS string(16) Status of the process
CLIENTOSPID string(32) Client OS PID
CLIENTIPADDR string(64) Client IP address
CLIENTNAME string(32) Client name
CLIENTHOSTNAME string(32) Client host name
CLIENTAPPLNAME string(32) Client application name
XACTSTARTTIME time Start time of the current transaction
XACTELAPSEDTIME long Elapsed time of the current transaction
XACTNAME string(256) Transaction name
GTRIDXA string(256) Binary version of the global transaction ID portion of XID
BQUALXA string(256) Binary version of the branch qualifier portion of XID
BLOCKERLCNAME string(32) Blocker logical cluster name, if Cluster Edition
BLOCKERHOSTNAME string(32) Blocker host name
BLOCKERCMD string(32) Blocker general command type
BLOCKERAPPNAME string(32) Blocker application name
BLOCKERSTATUS string(16) Blocker's status of its process
BLOCKERCLIENTOSPID string(32) Blocker client OS PID
BLOCKERCLIENTIPADDR string(64) Blocker client IP address
BLOCKERCLIENTNAME string(32) Blocker client name
BLOCKERCLIENTHOSTNAME string(32) Blocker client host name
BLOCKERCLIENTAPPLNAME string(32) Blocker client application name
BLOCKERXACTSTARTTIME time Blocker's start time of its current transaction
BLOCKERXACTELAPSEDTIME long Blocker's elapsed time of its current transaction
BLOCKERXACTNAME string(256) Blocker transaction name
BLOCKERGTRIDXA string(256) Blocker's binary version of its global transaction ID portion of XID
BLOCKERBQUALXA string(256) Blocker's binary version of its branch qualifier portion of XID

Requirements

Attributes: MDA
Minimum database version: 15.5