DEADLOK='iiii,kkkk' parameter for procedures
Use the DEADLOK='iiii,kkkk' parameter in procedure to specify the local deadlock-detection interval in seconds or milliseconds (iiii) and the number of local cycles (kkkk) that are to occur before a global detection is initiated.
The LOCKTIME parameter in the DFSVSMxx member of the IMS PROCLIB data set is also associated with IRLM deadlock management. See Enabling the IRLM lock timeout function for more information.
- iiii
- A 1- to 4-digit number from 1 to 9999 that specifies the length of time in seconds (1 - 99) or
milliseconds (100 - 9999) that is used for the IRLM local deadlock detection interval. Values less
than 100 are recognized in seconds with 5 seconds being the maximum used. Values from 100 to 9999
are treated as milliseconds and IRLM truncates this to even 100 millisecond increments, with a
maximum value of 5000 (5 seconds).Note: Once IMS TIMEOUT candidates time out, they remain timeout candidates and are presented to the timeout exit each Global deadlock cycle. IMS creates SMF 79.15 records when candidates are presented which are written to the SMF data sets (if enabled). If timeout candidates are found and the value for iiii is subsecond, there are many SMF 79.15 records written per second until the tasks are no longer waiting in IRLM.
- kkkk
- Specifies the number of local deadlock cycles performed before global deadlock detection is performed. The default is 1.
Deadlock processing time is minimal if the number of locks that are HELD and WAITING is small. However, deadlock processing can affect system performance when IRLM encounters a real deadlock situation.
The amount of time to run deadlock processing is directly proportional to the number of resources HELD (this is a minor time component) plus the number of WAITERs (this is a major time component) on those resources.
If the WAITERs increase as a result of a real deadlock situation, the deadlock must be found as quickly as possible. The larger the number of WAITERs, the longer deadlock processing takes to find and break the deadlock. While deadlock processing is running, nothing else is happening with respect to that particular IRLM! The effect on performance is particularly significant in a Sysplex environment because any IRLM that is running deadlock processing can cause other members to slow down or stop processing if they need this IRLM to process another request.
The previous paragraph might imply that you should have the DEADLOK parameter on the local IRLM set as high as possible, which would cause deadlock processing to run the least. However, if a deadlock situation exists, the faster it is detected and broken, the better the system runs.
Another aspect of deadlock processing and how it affects system performance is the number of locks that are held. IRLM must evaluate all held resources to check for WAITERs. Therefore, the amount of time that deadlock processing takes depends on the number of held resources (more held resources equals more deadlock processing time).