Exit XDLIPRE
Exit XDLIPRE is invoked on entry to the DL/I interface program.
Programs running in this exit must be coded to threadsafe standards and defined to CICS® as threadsafe.
- Exit-specific parameters
-
- UEPCTYPE
- Address of type-of-request byte. Values are:
- UEPCEXEC
- The original request was an EXEC DLI request.
- UEPCCALL
- The original request was a CALL-level request.
- UEPCSHIP
- The request has been function shipped from another region. When this value is set, restrictions apply to the setting and use of the rest of the exit parameters, as described.
- UEPAPLIST
- Address of application's parameter list. The general format
for COBOL and assembler language is:
plist address --> parm1 address --> parm1 parm2 address --> parm2 parm3 address --> parm3 .............. up to a maximum of 18 parameters excluding the optional parmcount.
The general format for PL/I is:
When UEPCTYPE is not UEPCSHIP, your exit program can change any of the parameters in the application parameter list. For UEPCSHIP requests, your exit program cannot change any of the parameters. Furthermore, for UEPCSHIP requests, UEPAPLIST points to a copy of the parameter list in the above format, but which contains only the first two parameters,plist address --> parm1 address --> parm1 (parmcount) parm2 address --> locator descriptor --> parm2 parm3 address --> locator descriptor --> parm3 .............. up to a maximum of 18 parameters
parm1
andparm2
.Note: For PL/I applications,parm1
may or may not contain a parameter-count. Your exit program should check this field before using it. - UEPLANG
- Address of program language byte. Values are:
- UEPPLI
- PL/I
- UEPCBL
- COBOL
- UEPASM
- Assembler language.
For UEPCSHIP requests, the language is always assembler.
- UEPIOAX
- Address of I/O area existence flag byte:
- UEPIOA1
- I/O area exists.
For UEPCSHIP requests, the I/O area existence flag is always off.
- UEPIOA
- Address of I/O area. This is the application's IOAREA, or
DFHEDP's IOAREA in the case of EXEC DLI. The contents of the
IOAREA can be overwritten in the exit: the new contents are used when
the DL/I request is processed. However, it should be noted that IOAREAs
can be in a program's static storage and, in this case, should
not be overwritten.
For UEPCSHIP requests, UEPIOA is always zero.
- UEPPSBNX
- Address of PSB existence flag byte:
- UEPPSB1
- A PSB exists.
- UEPPSBNM
- Address of an area containing the 8-character PSB name. The contents of the area can be overwritten by the exit, for all types of request including UEPCSHIP; the new contents are used when the DL/I request is processed.
- UEPSYSDX
- Address of the SYSID existence flag byte:
- UEPSYS1
- A SYSID exists.
- UEPSYSID
- Address of an area containing the 4-character SYSID name. The contents of the area can be overwritten by the exit, for all types of request including UEPCSHIP; the new contents are used when the DL/I request is processed.
- Return codes
-
- UERCNORM
- Continue processing
- UERCBYP
- Bypass DL/I request and return
- UERCPURG
- Task purged during XPI call.
- XPI calls
- All can be used.