CICS Troubleshooting
AEI0 program not found
AEI0 (PGMIDERR) means CICS could not find the program the transaction tried to LINK, XCTL or LOAD.
What it means
- The program name is not defined to CICS, not enabled, or not in the load libraries.
- It is the online equivalent of "program not found".
Common causes
- Program not defined in a PROGRAM resource (or definition not installed).
- Load module missing from the DFHRPL concatenation.
- Program name misspelled in the LINK/XCTL call.
- New version deployed to the wrong library.
How to diagnose
- Use CEMT INQUIRE PROGRAM(name) to check definition and enable status.
- Verify the load module exists in the DFHRPL libraries.
- Check the calling program for the exact name it passes.
How to fix it
- Define and install the PROGRAM resource (CEDA/CEMT).
- Place the load module in a DFHRPL library and NEWCOPY it.
- Correct the program name in the calling code.
Example: Check program definition (CEMT)
CEMT INQUIRE PROGRAM(MYPROG)
*> Look for: ENABLED, and correct library in DFHRPL
CEMT SET PROGRAM(MYPROG) NEWCOPY *> after deploying a fix
NEWCOPY loads the fresh module without a region restart.
Interview tip
- Q: How would you troubleshoot a AEI0 program not found in production?
- A: I would check the PROGRAM definition with CEMT, verify the load module is in DFHRPL, and confirm the name used in the LINK or XCTL call.
Prevention checklist
- Deployment checklist: define, install, NEWCOPY.
- Automate resource definitions with the release.
