SM21显示大量进程类型为ENQ的Internal lock administration error
What is lock table over flow ? How to resolve lock table overflow issue ?
This article answers the below queries ?
- What is lock table overflow ?
- How to identify lock table over flow issue ?
- What is the parameter to be changed to increase lock table size in SAP ?
- What is the reason for lock table overflow ?
- How to resolve lock table overflow ?
What is lock table overflow ?
SAP manages locks using lock table. The lock table contains all of the informaton related to locks like who is holding the lock and which locks are currently held etc. The size of the lock table can be specified by the SAP parameter enque/table_size. The size of the lock table limits the number of locks, lock owners and lock names. If this size is exceeded, then the lock table overflow occurs.
How to identify lock table overflow issue ?
In SM21 transaction log and ST22 dumps, if you find any error messages like LOCK_TABLE_OVERFLOW, Lock table overflow, Internal lock administration error it means there is a lock table overflow issue.
What is the parameter to be changed to increase lock table size in SAP ?
Parameterenque/table_size to be changed to increase or decrease lock table size using RZ10 transaction. Default value of this parameter is 32768. The min value that can be set is 4096 and max value is 102400. The unit for this parameter is KB.
As this is not dynamic parameter, for the new value to take effect, a system restart is required after modifying the parameter.
What is the reason for lock table overflow ?
A lock table overflow can occur due to
- The lock table is configured too small (i.e value set to enque/table_size parameter is very low)
- Due to improper design of application which sets a large number of locks
- Number of enqueue worprocesses configured in a sap system are less and update is very slow/hanging due to which lots of locks are accumulated in lock table
- Running a custom report with improper selection criteria (like very long time periods data pull) which sets so many locks & eventually lock table overflow occurs
How to resolve lock table overflow ?
- Increase the size of lock table i.e increase the parameter enque/table_size value using RZ10 transaction.
To determine the optimal value for this parameter, you can check the maximum locks set so far in the history and the current number of locks set from SM12 -> Extras -> Statistics
- Increase the number of enqueue workprocesses
To Do Checklist:
1) First check the user who has caused the issue. For this go to following path:
Check the file “ENQHISOVR”
Check last 10 lines of this file. You will get the users and the transactions that caused the issue.
2) Check with the user what was he doing with the transaction
3) If its occurring frequently, try to increase lock table size by another 20,000
4) Further, you can also configure CCMS alerts by setting a threshold to 80%. To warm you before the issue of Lock Table Overflow.
The issue was because of a background job that was trying to process thousands of Idocs, as a result it was placing locks on table EDIDC. We review the program logic and suspended the background job from execution.