Mainframe Path Start learning free
CoreError and abend codesASRA

ASRA — CICS program check

A program check inside a CICS transaction — the online equivalent of a batch S0C7 or S0C4. The interrupt code and offset lead you to the bad line.

What happened

The user's screen shows an abend message instead of the next map. The region keeps running; only this task ended. The CICS log records which transaction, program and offset failed.

Terminal and CICS log messages (illustrative)
DFHAC2206 14:02:11 CICSPRD1 Transaction ORD1 failed with abend ASRA.
          Updates to local recoverable resources backed out.
...
DFHSR0001 CICSPRD1 An abend (code 0C7/AKEA) has occurred at offset
          X'00001A3C' in program ORDP100.

What it means

ASRA means the hardware raised a program check while application code was running under CICS. CICS catches it, abends the task with ASRA and backs out recoverable updates to the last syncpoint. The underlying interrupt code is the real clue: 0C7 is bad numeric data, 0C4 is a storage addressing problem, and so on, as in batch S0C7 and S0C4.

Typical causes

Symptoms

ASRA happens only on certain inputs or screen paths, not on every transaction. Compare look-alikes: ASRB is an operating system abend rather than a program check, AICA is a task that ran too long without giving control back, and AEIx abends are CICS command conditions raised because the program did not check RESP.

Where to look

How to diagnose

  1. Note transaction, program, interrupt code and offset from the CICS log.
  2. Confirm the program version in the region matches the listing you are using.
  3. Use the offset to find the failing statement in the compile listing.
  4. Check the fields used by that statement in the dump: hex values, the COMMAREA and the EIB.
  5. Work out which input or screen path produced the bad data or address.
  6. Reproduce in test with the same input, using CEDF if helpful.

How to fix

Correct the code: validate input, check EIBCALEN before using the COMMAREA, bound subscripts, initialise fields. Recompile, promote, then refresh the program in the region with NEWCOPY or PHASEIN through CEMT or your deployment tooling.

Recoverable resources were backed out, so the user can normally retry once the fix is in. Non-recoverable resources, such as some files or external calls, may need checking.

How to prevent

Production considerations

Interview question

A CICS transaction is abending ASRA in production. How do you find the cause?

Stuck on something else?
Ask the community or search the full course.

Ask a question