What it means
A program called through distributed program link (DPL) runs under a mirror transaction in the remote region and can only use a subset of the CICS API. If it issues a command outside that subset, the command raises INVREQ with RESP2 200.
If the server program does not handle that INVREQ, the mirror transaction ends with ADPL.
Typical causes
- The server program issues a terminal command or another command not allowed in a DPL server.
- A program written to run locally is now called remotely by DPL.
- A local program defined with EXECUTIONSET=DPLSUBSET uses a command outside the DPL subset.
- No RESP check for INVREQ in the server program.
How to fix it
- Identify the command in the server program that raised INVREQ with RESP2 200.
- Move that command to the client side, or restructure the program so the server part avoids it.
- Test the server program with EXECUTIONSET=DPLSUBSET to catch these commands before it goes live.
- Add RESP checks in the server program for INVREQ.
Example
Illustrative only; names and values are invented.
DFHAC2236 13:44:20 APPL02 Transaction CSMI abend ADPL in program PROG02. Updates to local recoverable resources will be backed out.