Data sharing locking (BSTATDR)
This topic describes the Data sharing locking section of the DB2 statistics detail report (BSTATDR).
-------------------------- -------- ------- ------- -------
LOCK REQUESTS (P-LOCKS) N/P N/P 0.00 0.00
UNLOCK REQUESTS (P-LOCKS) N/P N/P 0.00 0.00
CHANGE REQUESTS (P-LOCKS) N/P N/P 0.00 0.00
SYNCH.XES - LOCK REQUESTS N/P N/P 0.00 0.00
SYNCH.XES - CHANGE REQS N/P N/P 0.00 0.00
SYNCH.XES - UNLOCK REQS N/P N/P 0.00 0.00
ASYNCH.XES - RESOURCES N/P N/P 0.00 0.00
SUSPENDS - IRLM GLOB. CONT N/P N/P 0.00 0.00
SUSPENDS - XES GLOBAL CONT N/P N/P 0.00 0.00
SUSPENDS - FALSE CONT. N/P N/P 0.00 0.00
INCOMPATIBLE RETAINED LOCK N/P N/P 0.00 0.00
NOTIFY MESSAGES SENT N/P N/P 0.00 0.00
NOTIFY MESSAGES RECEIVED N/P N/P 0.00 0.00
P-LOCK/NOTIFY EXITS ENG. N/P N/A N/A N/A
P-LOCK/NOT EX ENG. UNAVAIL N/P N/P 0.00 0.00
PSET/PART P-LOCK NEG. N/P N/P 0.00 0.00
PAGE P-LOCK NEGOTIATION N/P N/P 0.00 0.00
OTHER P-LOCK NEGOTIATION N/P N/P 0.00 0.00
P-LOCK CHANGE DURING NEG. N/P N/P 0.00 0.00
GLOBAL CONTENTION RATE(%) N/P
FALSE CONTENTION RATE(%) N/P
XES RATE(%) N/P
The following table describes the fields in the Data sharing locking section.
Field | Description |
---|---|
LOCK REQUESTS (P-LOCKS) | Number of lock requests for P-locks (QTGSLPLK) This counter is incremented when a physical lock (P-lock) is acquired in the Db2 data sharing environment at the data set level to allow Db2 to determine whether an object is of inter-Db2 interest. Concurrency is still managed as before with transaction (or logical) locks (L-locks). Tuning Tip: A P-lock is acquired for the first transaction that accesses an object (table space, index space, partition) but it is owned by the subsystem. Page P-locks are used for row-level locking. Inter-Db2 interest occurs only when at least one Db2 has update interest and one or more others have read interest. P-locks never cause timeouts, as the lock mode can be negotiated. |
UNLOCK REQUESTS (P-LOCKS) | Number of unlock requests for P-locks (QTGSUPLK) This number represents the number of IRLM unlock requests because a page set is no longer in use. This number represents the number of times a page set has been unlocked in a data sharing environment. |
CHANGE REQUESTS (P-LOCKS) | Number of change requests for P-locks (QTGSCPLK) This counter is incremented when a P-lock has been established and the IRLM associated with this Db2 determines that the nature of that lock must be changed (for example from share to exclusive) because the usage of the page set in that Db2 has changed. Tuning Tip: The number of P-lock changes reflects the changing status of page sets as access modes change and the lock state is negotiated between data sharing members. |
SYNCH.XES - LOCK REQUESTS | Number of XES synchronous lock requests (QTGSLSLM) This number is incremented for both L-locks and P-locks when a request for a lock on an object of inter-Db2 interest is sent to MVS Cross-System Services. This occurs synchronously under the user’s execution unit. This number reflects the request for locks of inter-Db2 interest after it is determined that no intrasystem locks exist. This count is not incremented if a suspension occurs. |
SYNCH.XES - CHANGE REQS | Number of XES synchronous change requests (QTGSCSLM) This number is incremented for both L-locks and P-locks when a change request for a lock on an object of Db2 intersystem interest is sent to MVS Cross-System Services. This number reflects the number of change requests for locks of inter-Db2 interest. This count is not incremented if a suspension occurs. |
SYNCH.XES - UNLOCK REQS | Number of XES synchronous unlock requests (QTGSUSLM) This number is incremented for both L-locks and P-locks when an unlock request to an object of inter-Db2 interest is sent to MVS Cross-System Services. It is incremented for each resource for which the global lock is released, rather than once for a generic unlock request as is done for local locks. This number reflects all locks which are released through MVS Cross-System Services. This count is not incremented if a suspension occurs. |
ASYNCH.XES - RESOURCES | Number of resources propagated asynchronously to XES (QTGSKIDS) This counter is incremented whenever a Db2 data sharing P-lock or L-lock (page set lock or row/page lock) is propagated by the IRLM to MVS Cross-System Services asynchronously. This situation occurs when new inter-Db2 interest occurs on a parent resource (such as a page set) or when a request completes after the requester’s execution unit has already been suspended. |
SUSPENDS -IRLM GLOBAL CONT | Number of suspensions due to IRLM global resource contention (QTGSIGLO) |
SUSPENDS - XES GLOBAL CONT | Number of global suspends - XES (QTGSSGLO) This counter is a measure of MVS XES global resource contention. MVS XES lock states were in conflict but IRLM lock states were not. XES is aware only of exclusive or share locks, where IRLM has many lock states. |
SUSPENDS - FALSE CONT. | Number of global suspends due to false contention (QTGSFLSE) This counter is incremented every time XES detects contention on the resource hash class but there was no real contention on the resource itself. Tuning Tip: MVS Cross-System Services uses a hash lock table in the coupling facility to provide efficient determination of whether a resource is locked. This hash table points to a number of synonyms (different resource names can hash to the same entry). Contention at the hash entry is considered false contention. The more resources declared to be of inter-Db2 interest, the more chances there are of this condition occurring. If false contentions are more than half of the total global contentions (suspensions for IRLM, XES and false), the CF lock structure size may be too small for the workload. |
INCOMPATIBLE RETAINED LOCK | Number of global requests denied due to incompatible retained lock (QTGSDRTA) This number is incremented every time global lock services denies a lock request because an incompatible lock type has been retained on the requested resource. This number reflects the instances in which access to a page or row cannot be obtained because another thread on another system had access to the resource requested but the other system failed. The CF retains locks until the other system comes up to complete the unit of work. |
NOTIFY MESSAGES SENT | Number of notify messages sent (QTGSNTFY) This number represents the number of messages passed to the coupling facility so that, for example, other members can be notified that DBDs have been changed due to CREATE, ALTER, or DROP. This is the outbound traffic to the coupling facility. |
NOTIFY MESSAGES RECEIVED | Number of notify messages received (QTGSNTFR) This number represents the number of messages received from the coupling facility. This value is the inbound traffic from the coupling facility. |
P-LOCK/NOTIFY EXITS ENG. | Maximum number of engines available for lock/notify exit requests (QTGSPEMX) This number reflects the number of tasks allocated to tracking intersystem lock negotiation. This number is a count of the facilities available to deal with lock contention from the global Db2 data sharing perspective. |
P-LOCK/NOT EX ENG. UNAVAIL | Number of times no engine available for lock/notify exit requests (QTGSPEQW) This number is incremented when the number of requests for lock or notify exit processing exceeds the maximum number of engines available. Tuning Tip: This number indicates that there are too many intersystem locking and notification requirements based on the number of resources available for global lock management. It may be appropriate to reduce the number of resources being shared. |
PSET/PART P-LOCK NEG. | Number of P/P P-lock negotiations (QTGSPPPE) This counter is incremented when the participating Db2 has to change the lock type of a page set/partition P-lock because another thread on another system changed its intent on this object from SHARE to EXCLUSIVE or from EXCLUSIVE to SHARE. Tuning Tip: Each Db2 in a data sharing group may need to change P-locks as part of a negotiation process so that physical locks never cause timeouts or deadlocks. |
PAGE P-LOCK NEGOTIATION | Number of Page P-lock negotiations (QTGSPGPE) This counter is incremented when the participating Db2 has to change a page lock type because another thread on another system has changed its intent on this object from SHARE to EXCLUSIVE or EXLUSIVE to SHARE. Page P-locks are used for row-level locking. Tuning Tip: Each Db2 in a data sharing group may need to change P-locks as part of a negotiation process so that physical locks never cause timeouts or deadlocks. |
OTHER P-LOCK NEGOTIATION | Number of other P-lock negotiations (QTGSOTPE) This counter is incremented when anything other than a page set or page lock is negotiated between participating Db2 subsystems. These events represent other contention which may exist other than page set or page P-locks. |
P-LOCK CHANGE DURING NEG. | Number of P-lock change requests during P-lock negotiation (QTGSCHNP) This counter is incremented when a participating Db2 must communicate a lock change request to other Db2s as a result of negotiation for access to an object. This number is a count of the number of P-lock changes issued during P-lock intersystem negotiation. |
GLOBAL CONTENTION RATE(%) | Percentage of global lock contentions. This value is calculated as Global Suspends/total Global Locks * 100.0
|
FALSE CONTENTION RATE(%) | Percentage of global lock false contentions This value is calculated as False Contentions/Global Suspends x 100.0
FALSE CONTENTION(%) |
XES RATE(%) | Percentage of L-lock (transaction lock) requests that have been propagated to z/OS XES synchronously |
Related topic