MainframeKit

AKCS

Deadlock timeoutCICS ABEND

CICS ended the task because it waited for a resource longer than its deadlock timeout (DTIMOUT).

MOST LIKELY

Two or more tasks each hold a resource (for example an ENQ) that the other one needs.

FIRST CHECK

Rerun the transaction; the wait that caused it may have cleared.

TRY IT ▸

MainframeKit assistant

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

  1. Rerun the transaction; the wait that caused it may have cleared.
  2. If it repeats, find which resource the task was waiting for (dump or monitoring tool).
  3. Change programs so they take shared resources in the same order and release them before asking for others.
  4. 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.