CICS DL/I user interface block return codes

After issuing any DL/I call, CICS® online programs must check the return code in the UIB before checking the DL/I status code.

If the value in UIBRCODE is not null, the contents of the PCB status code are not meaningful. For more information about defining and addressing a UIB, see Specifying the UIB (CICS online programs only).

The UIBRCODE contains two bytes, UIBFCTR and UIBDLTR. You should first check the contents of UIBFCTR; the contents of UIBDLTR are meaningful only if UIBFCTR indicates a NOTOPEN or INVREQ condition. Table 1, Table 2, and Table 3 show the return codes from the CICS-DL/I interface.

Table 1. Return codes in UIBFCTR
Condition ASM COBOL PL/I
NORESP (normal response) X'00' LOW-VALUES 00000 000
NOTOPEN (not open) X'0C' X'0C' 00001 100
INVREQ (invalid request) X'08' X'08' 00001 000
Table 2. Return codes in UIBDLTR if UIBFCTR='0C' (NOTOPEN)
Condition ASM COBOL PL/I
Database not open X'00' LOW-VALUES 00000 000
Intent scheduling conflict X'02' X'02' 00000 010
Table 3. Return codes in UIBDLTR if UIBFCTR='08' (INVREQ)
Condition ASM COBOL PL/I
Invalid argument passed to DL/I X'00' LOW-VALUES 00000 000
PSBNF (PSB not found) X'01' X'01' 00000 001
PSBSCH (PSB already scheduled) X'03' X'03' 00000 011
NOTDONE (request not run) X'04' 12-4-9 00000 100
PSBFAIL (PSB initialization failed) X'05' X'05' 00000 101
TERMNS (termination not successful) X'07' X'07' 00000 111
FUNCNS (function unscheduled) X'08' X'08' 00001 000
INVPSB (invalid PSB) X'10' X'10' 00010 000
DLINA (DL/I not active) X'FF' X'FF' 11111 111

If these codes do not appear to be due to programming errors, they might be caused by not-open or invalid-request conditions.