What it means
A transaction can be given a deadlock timeout value. If a task of that transaction stays suspended, waiting for something, longer than that value, CICS ends it with AKCS.
IBM says an occasional AKCS is normal when DTIMOUT is set, and a retry often works. Frequent AKCS abends point to tasks waiting on each other.
Typical causes
- Two or more tasks each hold a resource (for example an ENQ) that the other one needs.
- A task waits a long time for a busy resource such as a record or a queue.
- A DTIMOUT value on the transaction that is too short for normal waits.
- Programs taking resources in a different order from each other.
How to fix it
- Rerun the transaction; the wait that caused it may have cleared.
- If it repeats, find which resource the task was waiting for (dump or monitoring tool).
- Change programs so they take shared resources in the same order and release them before asking for others.
- Review the DTIMOUT value on the transaction definition with your system programmer.
Example
Illustrative only; names and values are invented.
DFHAC2236 14:12:09 APPL01 Transaction TRN1 abend AKCS in program PROG01 term T001. Updates to local recoverable resources will be backed out.