Lock escalations (<number of> table locks) 

Lock escalations (<number of> table locks)

Explanation

The number of SQL line locks on a table set by a transaction exceeds the threshold. Therefore the individual line locks are converted into a table lock. SQL locks are usually set on individual lines in a table. However, administration of a high number of individual line locks is expensive and only a limited number of locks can be administered in the database lock list. Therefore, a configurable threshold is set after which the system attempts to lock the entire table for the transaction. This means that until the COMMIT is set, other transactions cannot set any locks on lines in this table.

User action

You can set the maximum number of individual line locks that a database can administer using the XPARAM parameter MAXLOCKS. Escalation is attempted when a task holds more than 0.1*MAXLOCKS line locks in a table. If undesired lock escalations are occurring often, you should increase the value of the parameter (maximum 2.3 million). Whether lock escalations become a problem depends largely on the application. If lock escalations are occurring, check the application to determine whether changing transactions, which lock a large number of lines, can be staggered using COMMITS.