In the IDMS log getting error messages like this:
DC001000 Vnn Tnn T:nn taskid P:progname C:DEAD WAITING ON R:LTXNLOCK 00002008 nnnnnnnn
The documentation for message DC001000 indicates the x'20' in the third byte means this is a deadlock on a space management lock and nnnnnnnn is a page number.
What causes a deadlock on the space management lock on a page?
Release: All supported releases.
When a program performs an update which causes the space available count on the page to change, a lock is placed on the space management for that page. The space available count is stored in the header of each database page in the SR1 system record which is pointed to by line index 0.
Note, this is not a lock on the Space Management Page (SMP) in the area, IDMS does not place locks on SMP pages.
These types of deadlocks can be caused by:
Adding DEADLOCK_DETAILS=ON to the SYSIDMS parameters in the CV will produce more deadlock information when it occurs in message DC001001. It will show the transaction/rununit ID, the program name and the subschema name.
Analyze the pages where the deadlocks occur and the record types that reside in them.
Then examine how the programs are using those records.
Deadlocks in the DDLDCRUN queue area can be avoided by increasing the page range or reducing the page size of the area.