Locking / Blockers Waiters
Purpose
Blocker Waiters view shows transactions that are blocking others. In scenarios where work is hung, waiting on locks, this shows you the root cause of the problem. You can easily see which connections could be forced to resolve the hang.
Screenshot
![image image](/dmctop-wiki/static/bafb76eae381a9087900708bce020cf0/3cbba/blockers_waiters.png)
Metric shown
Application handle
A system-wide unique ID for the application.
Source: MON_GET_LOCKS(NULL, #MEMBER#).APPLICATION_HANDLE
Member
The identifier for the database member from which the data was retrieved for this result record.
Source: MON_GET_LOCKS(NULL, #MEMBER#).MEMBER
Application name
The name of the application running at the client, as known to the database or Db2 Connect server.
Source: WLM_GET_SERVICE_CLASS_WORKLOAD_OCCURRENCES(NULL, NULL, #MEMBER#).APPLICATION_NAME
Transaction state
The state of the workload occurrence.
Source: MON_GET_UNIT_OF_WORK(MON_GET_LOCKS(NULL, #MEMBER#).APPLICATION_HANDLE, MON_GET_LOCKS(NULL, #MEMBER#).MEMBER).WORKLOAD_OCCURRENCE_STATE
User ID
The current authorization ID for the session being used by this application.
Source: WLM_GET_SERVICE_CLASS_WORKLOAD_OCCURRENCES(NULL, NULL, #MEMBER#).SESSION_AUTH_ID
Lock mode
The type of lock being held.
Source: MON_GET_LOCKS(NULL, #MEMBER#).LOCK_MODE
Number of lock waits
The total number of times that applications or connections waited for locks.
Source: MON_GET_UNIT_OF_WORK(MON_GET_LOCKS(NULL, #MEMBER#).APPLICATION_HANDLE, MON_GET_LOCKS(NULL, #MEMBER#).MEMBER).SUM(LOCK_WAITS)
Number of lock held
The number of locks currently held.
Source: MON_GET_UNIT_OF_WORK(MON_GET_LOCKS(NULL, #MEMBER#).APPLICATION_HANDLE, MON_GET_LOCKS(NULL, #MEMBER#).MEMBER).SUM(NUM_LOCKS_HELD)
Number of transactions blocked
The number of other transactions that are currently waiting on this lock (i.e. blocked by this transaction).
Lock wait time of blocked transactions
The total time spent waiting on locks for all transactions currently waiting on this lock.
This time includes time previously spent waiting on other locks.
Source: MON_GET_UNIT_OF_WORK(MON_GET_LOCKS(NULL, #MEMBER#).APPLICATION_HANDLE, MON_GET_LOCKS(NULL, #MEMBER#).MEMBER).SUM(LOCK_WAIT_TIME)
Maximum wait time
The largest value for total time spent waiting on locks for a transaction blocked by this lock.
This time includes time previously spent waiting on other locks.
Source: MON_GET_UNIT_OF_WORK(MON_GET_LOCKS(NULL, #MEMBER#).APPLICATION_HANDLE, MON_GET_LOCKS(NULL, #MEMBER#).MEMBER).MAX(LOCK_WAIT_TIME)
Is blocked
Flag (Yes or No) indicating whether the transaction holding this lock is itself blocked waiting on another lock.