MainframeKit

ADPL

Mirror abend for a command not allowed in a DPL serverCICS ABEND

The mirror transaction ended because a program reached by distributed program link used a command that DPL server programs may not use.

MOST LIKELY

The server program issues a terminal command or another command not allowed in a DPL server.

FIRST CHECK

Identify the command in the server program that raised INVREQ with RESP2 200.

TRY IT ▸

MainframeKit assistant

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

  1. Identify the command in the server program that raised INVREQ with RESP2 200.
  2. Move that command to the client side, or restructure the program so the server part avoids it.
  3. Test the server program with EXECUTIONSET=DPLSUBSET to catch these commands before it goes live.
  4. 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.