CICS AEXL, AEIS, AEIL, AEIM — a file request the program did not handle
A CICS file command returned a condition, and the program had no RESP check for it, so CICS ended the task with that condition's abend code. The code tells you which state the file is in.
What happened
The user's screen shows an abend message instead of the next screen. The program issued an EXEC CICS file command (READ, WRITE, REWRITE, STARTBR and so on). CICS could not do it and raised a condition. The program had no RESP option and no HANDLE CONDITION for it, so CICS took the default action and ended the task with the condition's own abend code.
DFHAC2206 07:12:40 CICSPRD1 Transaction ACIN failed with abend AEXL. Updates to local
recoverable resources backed out.What it means
Each file condition has its own abend code, so the code already tells you what CICS found:
- AEIL — FILENOTFOUND (older name DSIDERR): the file name in the command is not defined to this region.
- AEIM — NOTFND: the file is fine, but no record has that key.
- AEIS — NOTOPEN: the file is CLOSED and UNENABLED (the state a CLOSE leaves an enabled file in), or CICS tried to open a CLOSED, ENABLED file for the request and the open failed.
- AEXL — DISABLED: someone disabled the file (CEMT SET FILE or the SPI), or it was defined disabled and never enabled.
- Less common: AEIN DUPREC (that key already exists), AEIQ IOERR, AEIV LENGERR.
The file's state decides which one you get. A CLOSED, ENABLED file is opened by CICS on the first request. A CLOSED, DISABLED file gives DISABLED, never NOTOPEN.
Typical causes
- An overnight batch job closed and disabled the file so it could update the data set, and the step that gives it back did not run.
- A new program version names a file that is not installed in this region yet.
- The program assumes every key typed on the screen exists, with no NOTFND check.
- CICS tried to open the file and could not: the data set is missing, or a batch job still has it.
Where to look
- CEMT I FILE(name): Ope or Clo, Ena, Dis or Une, and the data set name.
- The region's message log, for an open that failed.
- The batch schedule: which job closes this file, and did its reopen step run?
- The program source: does the command use RESP, and what does it do with each value?
How to fix it
- Name the condition from the abend code.
- Check the file with CEMT I FILE.
- Closed and disabled after batch: confirm the batch job has finished with the data set, then CEMT S FILE(name) OPE ENA, and retry the transaction.
- Not defined: the file needs a resource definition installed in this region (usually the CICS systems team).
- NOTFND: a data or program question, not a file state. The program should handle it and tell the user.
- Afterwards: make the reopen step run even after a warning, and add RESP checks so users get a clear message instead of an abend.
Interview question
After the overnight batch, one transaction abends AEXL at every branch. What do you check first?
Stuck on something else?
Ask the community or search the full course.