What it means
PGMIDERR is raised on LINK and similar commands when the target program cannot be used. RESP2 explains why: 1 means no definition (and autoinstall did not create one), 2 means the program is disabled, 3 means it could not be loaded.
Other RESP2 values cover program autoinstall problems, the dynamic routing program rejecting the request, and Java or Liberty failures.
Typical causes
- No PROGRAM definition and program autoinstall is off or declined.
- The program is disabled.
- The load module is not in the DFHRPL libraries, or failed to load.
- The program name in the command is wrong.
How to fix it
- Capture RESP2 and match it to the cause.
- Check the PROGRAM definition and its status (for example with CEMT INQUIRE PROGRAM).
- Make sure the module is in the DFHRPL concatenation, then refresh it with SET PROGRAM NEWCOPY.
- Check the spelling of the program name the code passes.
- Code RESP (and RESP2) on the command and test the value with DFHRESP.
Example
Illustrative only; names and values are invented.
EXEC CICS LINK PROGRAM('PROG02') COMMAREA(WS-AREA)
RESP(WS-RESP) RESP2(WS-RESP2) END-EXEC
IF WS-RESP = DFHRESP(PGMIDERR) ...