The SNAPLOCKWAIT administrative view and the SNAP_GET_LOCKWAIT table function return snapshot information about lock waits, in particular, the lockwait logical data group.
This administrative view allows you to retrieve lockwait logical data group snapshot information for the currently connected database.
Used with the SNAPLOCK administrative view, the SNAPLOCKWAIT administrative view provides information equivalent to the GET SNAPSHOT FOR LOCKS ON database-alias CLP command.
The schema is SYSIBMADM.
Refer to Table 1 for a complete list of information that can be returned.
In a non-restrictive database, SELECT privilege is granted to PUBLIC when the view is automatically created.
SELECT AGENT_ID, LOCK_MODE, LOCK_OBJECT_TYPE, AGENT_ID_HOLDING_LK,
LOCK_MODE_REQUESTED FROM SYSIBMADM.SNAPLOCKWAIT
WHERE DBPARTITIONNUM = 0
AGENT_ID LOCK_MODE LOCK_OBJECT_TYPE ...
--------...- --------- ---------------- ...
7 IX TABLE ...
1 record(s) selected.
... AGENT_ID_HOLDING_LK LOCK_MODE_REQUESTED
... -------------------- -------------------
... 12 IS
The SNAP_GET_LOCKWAIT table function returns the same information as the SNAPLOCKWAIT administrative view, but allows you to retrieve the information for a specific database on a specific database member, aggregate of all database members or all database members.
Used with the SNAP_GET_LOCK table function, the SNAP_GET_LOCKWAIT table function provides information equivalent to the GET SNAPSHOT FOR LOCKS ON database-alias CLP command.
Refer to Table 1 for a complete list of information that can be returned.
>>-SNAP_GET_LOCKWAIT--(--dbname--+----------+--)--------------->< '-, member-'
The schema is SYSPROC.
If both dbname and member are set to NULL, an attempt is made to read data from the file created by SNAP_WRITE_FILE procedure. Note that this file could have been created at any time, which means that the data might not be current. If a file with the corresponding snapshot API request type does not exist, then the SNAP_GET_LOCKWAIT table function takes a snapshot for the currently connected database and database member number.
In a non-restrictive database, EXECUTE privilege is granted to PUBLIC when the function is automatically created.
SELECT AGENT_ID, LOCK_MODE, LOCK_OBJECT_TYPE, AGENT_ID_HOLDING_LK,
LOCK_MODE_REQUESTED FROM TABLE(SNAP_GET_LOCKWAIT('',-1)) AS T
AGENT_ID LOCK_MODE LOCK_OBJECT_TYPE ...
--------...-- ---------- ------------------ ...
12 X ROW_LOCK ...
1 record(s) selected.
... AGENT_ID_HOLDING_LK LOCK_MODE_REQUESTED
... -------------------- -------------------
... 7 X
UPDATE DATABASE MANAGER CONFIGURATION CLP USING DFT_MON_LOCK ON
CALL SYSPROC.ADMIN_CMD('update dbm cfg using DFT_MON_LOCK ON')
If the ADMIN_CMD stored procedure is used or if the clp command is used without having previously attached to the instance, the instance must be recycled before the change takes effect.
Column name | Data type | Description or corresponding monitor element |
---|---|---|
SNAPSHOT_TIMESTAMP | TIMESTAMP | The date and time that the snapshot was taken. |
AGENT_ID | BIGINT | agent_id - Application handle (agent ID) |
SUBSECTION_NUMBER | BIGINT | ss_number - Subsection number |
LOCK_MODE | VARCHAR(10) | lock_mode - Lock mode . This interface returns
a text identifier based on the defines in sqlmon.h and is one of:
|
LOCK_OBJECT_TYPE | VARCHAR(18) | lock_object_type - Lock object type
waited on . This interface returns a text identifier based
on the defines in sqlmon.h and is one of:
|
AGENT_ID_HOLDING_LK | BIGINT | agent_id_holding_lock - Agent ID holding lock |
LOCK_WAIT_START_TIME | TIMESTAMP | lock_wait_start_time - Lock wait start timestamp |
LOCK_MODE_REQUESTED | VARCHAR(10) | lock_mode_requested - Lock mode requested . This interface returns a text identifier based on the defines in sqlmon.h and is one of:
|
LOCK_ESCALATION | SMALLINT | lock_escalation - Lock escalation |
TABNAME | VARCHAR(128) | table_name - Table name |
TABSCHEMA | VARCHAR(128) | table_schema - Table schema name |
TBSP_NAME | VARCHAR(128) | tablespace_name - Table space name |
APPL_ID_HOLDING_LK | VARCHAR(128) | appl_id_holding_lk - Application ID holding lock |
LOCK_ATTRIBUTES | VARCHAR(128) | lock_attributes - Lock attributes . This
interface returns a text identifier based on the defines in sqlmon.h. If there are no locks, the text identifier is
NONE, otherwise, it is any combination of the following separated
by a '+' sign:
|
LOCK_CURRENT_MODE | VARCHAR(10) | lock_current_mode - Original lock mode
before conversion . This interface returns
a text identifier based on the defines in sqlmon.h and is one of:
|
LOCK_NAME | VARCHAR(32) | lock_name - Lock name |
LOCK_RELEASE_FLAGS | BIGINT | lock_release_flags - Lock release flags . |
DATA_PARTITION_ID | INTEGER | data_partition_id - Data Partition identifier . For a non-partitioned table, this element is NULL. |
DBPARTITIONNUM | SMALLINT | dbpartitionnum - Database partition number monitor element |
MEMBER | SMALLINT | member - Database member monitor element |