BLOCKING_THREADS table function
The BLOCKING_THREADS function returns a table that contains one row for each lock or claim that threads hold against the databases, tables, indexes, or spaces that are specified in the input parameter and the other objects in the hierarchy of the specified objects.
Authorization
- DISPLAYDB privilege
- DISPLAY privilege
- DBMAINT authority
- DBCTRL authority
- DBADM authority
- System DBADM authority
- SYSOPR authority
- SYSCTRL authority
- SYSADM authority
For implicitly created databases, the database privilege or authority can be held on the implicitly created database or on DSNDB04.
Syntax
table-list:
index-list:
space-list:
The schema is SYSIBMADM.
FL 508 dbname
An expression that returns a value that is a built-in character string or graphic string data
type that is not a LOB. The expression must have an actual length that is no greater than 128 bytes.
The value of the expression must refer to a database for which information is to be displayed.
Multiple databases can be specified in the following forms:
Table 1. Forms of dbname and dbstring Form Displays the information of... dbname1:dbname2 All databases with names, in UNICODE order, that are between dbname1 and dbname2 inclusive dbname* All databases with names that begin with the string dbname *dbname All databases with names that end with the string dbname *dbname* All databases with names that contain the string dbname *dbstring1*dbstring2* All databases with names that contain the strings dbstring1 and dbstring2 
FL 508 table-list
An expression that returns a value that is castable to a CLOB data type with an SBCS or MIXED
subtype. The expression must have an actual length that is no greater than 65536 bytes. The value of
the expression must refer to a list of tables for which information is to be displayed. This is a
required positional parameter. Null, blank, or an empty string are allowed. Pattern matching and range specification is not supported. Special characters such as colon (:), asterisk (*), and underscore (_) are treated as part of a schema or table name. Lower case characters will not be folded to become upper case.
More than one table can be listed separated by commas. Each table is qualified by its schema name.
The tables specified must not identify any of the following objects:- Declared global temporary tables
- Created global temporary tables
- Aliases
- Views
Scope of processing: the table, the table space that contains the table, the database that contains the table and indexes in the table.

FL 508 index-list
An expression that returns a value that is castable to a CLOB data type with SBCS or MIXED
subtype. The expression must have an actual length that is no greater than 65536 bytes. The value of
the expression must refer to a list of indexes for which information is to be displayed. This is a
required positional parameter. Null, blanks, or empty strings are allowed. Pattern matching and range specification are not supported. Special characters such as colon (:), asterisk (*), and underscore (_) are treated as part of a schema or table name. Lower case characters will not be folded to become upper case.
More than one index can be listed separated by commas. Each index is qualified by its schema name. The index schema cannot be SESSION.
Scope of processing: the index, the table and table space associated with the index, and the database that contains the index.

- FL 508 space-list
- An expression that returns a value that is castable to a CLOB ta type with SBCS or MIXED
subtype. The expression must have an actual length that is no greater than 65536 bytes. The value of
the expression must refer to a list of table spaces or index spaces for which information is to be
displayed. This is a required positional parameter.
Null, blanks, or empty strings are allowed. Pattern matching and range specification are not supported. Special characters such as colon (:), asterisk (*), and underscore (_) are treated as part of a schema or table name. Lower case characters will not be folded to become upper case.
More than one table space or index space can be listed separated by commas. Each table or index space is qualified by its database name.
Scope of processing (index space): the index, the table and table space associate with the index, and the database that contains the index.
Scope of processing (table space): the table space, the database that contains the table space, the table in the table space, and the indexes associated with the table in the table space.
FL 508 options
An expression that returns a value that is castable to a CLOB data type with an SBCS subtype.
The expression must have an actual length that is no greater than 65536 bytes. This is a required
positional parameter. Null, blanks, or empty strings are allowed. Lower case characters will not be folded to become upper case.
Possible values of the expression:
- FL 508
- DDLONLY
- Specifies that only certain lock types involved in a DDL statement will be processed and
returned in the output. These lock types could be obtained by any DDL statement execution. If
DDLONLY is not specified, all possible lock types will be processed and returned in the output. The lock types included when DDLONLY is specified are:
- Database locks (DBID)
- Page set locks
- Data set locks (partition)
- Lock-specific partitions
- Page set or data set open locks
- Database exception table (DBET) entry locks
- Table locks for segmented table spaces
- Package locks
- Cursor stability drain locks
- Repeatable read drain locks
- Write drain locks
- Load database definition (DBD) locks

| Column name | Data type | Contains... |
|---|---|---|
| ACQUIRED_TS | TIMESTAMP (12) | The time when the lock or claim was acquired |
| AGE | VARCHAR (27)![]() |
The elapsed time between when the lock or claim was acquired and when the function was
invoked, with the following abbreviated keywords:
|
| CORRID | VARCHAR (255) | The correlation identifier of the thread. If the STATE value indicates a physical lock (P-lock), CORRID has a null value or empty string. |
| CONNID | VARCHAR (255) | The connection identifier of the thread. If the STATE value indicates a P-lock, CONNID has a null value or empty string. |
| USERID | CHAR (8)![]() |
The user ID of the thread. If the STATE value indicates a P-lock, USERID has a null value or empty string. |
| LUWID | VARCHAR (255) | The logical-unit-of-work identifier of the thread. If the STATE value indicates a P-lock, LUWID has a null value or empty string. |
| SSID | CHAR (4) | In data sharing, the Db2 data sharing member where the thread is running. Otherwise, this column is unused. |
| TYPE | CHAR (1) | The type of blocker held by the thread. TYPE can have one of the following values:
|
| SUBTYPE | CHAR (2) |
The type of lock or claim that blocking threads hold. Locks for blocking threads can
have one of the following values:
Continues in next row. |
| SUBTYPE (cont.) |
|
|
| SUBTYPE (cont.) | Claims for blocking threads can have one of the following values:
|
|
| DURATION | CHAR (2) | The duration of the lock or claim. Locks can have one of the following values:
Claims can have one of the following values:
|
| STATE | CHAR (2) | The state in which the lock is held. Locks can have one of the following values:
|
| DBID | SMALLINT | The database identifier |
| OBID | SMALLINT | FL 508 The internal identifier of the object descriptor depending on the value for OBJECT_TYPE. When
OBJECT_TYPE is:
![]() The high order bit is always off in the OBID columns in the catalog.
Alternatively, you can identify the object using OBJECT_QUALIFIER and OBJECT_NAME.
|
| DBNAME | CHAR (8)![]() |
The database name |
| OBJECT_QUALIFIER | VARCHAR (128) |
FL 508 The meaning of OBJECT_QUALIFIER depends on the value for OBJECT_TYPE. When OBJECT_TYPE is:
![]()
|
| OBJECT_NAME | VARCHAR (128) |
FL 508 The meaning of OBJECT_NAME depends on the value for OBJECT_TYPE. When OBJECT_TYPE is:
![]()
|
| PAGENUM_OR_RID | VARCHAR (10) | Indicates one of the following values in hexadecimal format:
|
| PACKAGE | VARCHAR (274)![]() |
The qualified package name (COLLECTION_ID.NAME.CONTOKEN) if the lock is a package lock |
| CATALOG_LEVEL | VARCHAR (10) | The catalog level. This column is currently not used and reserved for future use. |
| INFO | VARCHAR (1024) | Informational text if TYPE is I, D, or E.![]()
|
| INFO (cont.) |
![]()
|
|
| INFO (cont.) |
![]()
|
|
FL 508 OBJECT_TYPE![]() |
CHAR(1)![]() |
The type of the object identified by DBID, OBID, OBJECT_QUALIFIER, and OBJECT_NAME:
This column is not available to BLOCKING_THREADS (dbname). ![]() |
- n refers to the n-th item after n-1 items that are not empty strings.
-
This message refers to all of the objects specified in table-list, index-list and space-list. This message will be returned when there are no blockers to report across the set of input objects.
- p refers to the p-th character in the option parameter.
- For the -DISPLAY BLOCKERS command, the NAME column in the command output contains the qualifier of the object if the qualifier is invalid. Otherwise, the NAME column contains the name of the object. For the BLOCKING_THREADS table function, the OBJECT_NAME column contains the qualifier of the object if the qualifier is invalid. Otherwise, the OBJECT_NAME column contains the name of the object.
- m can be one of the following:
- 1
- The qualifier is missing.
- 2
- The qualifier is too long.
- 3
- The qualifier contains an invalid character.
- 4
- The name starts with an invalid character.
- 5
- The name is too long.
- 6
- The name contains an invalid character.
- 7
- Incomplete specification. The qualifier, name, period, or escape character is missing.
- A complete report cannot be provided. Decrease the number of objects that are specified as input.
- This diagnostic message indicates that the table space listed in the message has been stopped when an access was attempted. User can start the table space and re-run the DISPLAY BLOCKERS command or the BLOCKING_THREADS table function.
Examples
SELECT *
FROM TABLE (SYSIBMADM.BLOCKING_THREADS('DSNDB06,DSNDB01'));
FL 508 Retrieve information
about the threads that hold locks and claims involved in a DDL statement against the specified
table, index, and space and any other objects in the hierarchy of the specified
objects. SELECT *
FROM TABLE (SYSIBMADM.BLOCKING_THREADS('S1.TB1' , 'S2.IX2' , 'DB3.SP3' , 'DDLONLY'));

