A fix is available
APAR status
Closed as program error.
Error description
When a CICS/DLI online program (PROG1) implemented in PL/I for VSE and using the DL/I HLPI (EXEC DLI) interface calls another program (PROG2) via EXEC CICS LINK, and PROG2 is also implemented in PL/I for VSE, but using the DL/I CALL interface, the next DL/I call in PROG1 after the return from PROG2 will fail with message "DLZ033I INTERSYSTEM COMMUNICATION FAILURE, REASON IS INVPARM", abend D033, or abend AXFC, an ASRA or another abend condition, depending on the level of the underlying CICS/DLI subsystem. Both PROG1 and PROG2 are running in the AOR of a CICS MRO environment and are accessing the DL/I database in the FOR.
Local fix
n/a
Problem summary
**************************************************************** * USERS AFFECTED: All DL/I online users running PL/I for VSE * * programs of mixed DL/I style in an MRO * * environment. * **************************************************************** * PROBLEM DESCRIPTION: When a CICS transaction accessing a * * DL/I database remotely via MRO * * function shipping issues DL/I calls via * * programs implemented in PL/I for VSE * * alternately through the EXEC DLI and * * CALL-level interface, an invalid DL/I * * parameter list will be passed to the * * CICS MRO system. * **************************************************************** * RECOMMENDATION: * **************************************************************** DL/I online programs implemented in PL/I for VSE may pass DL/I parameter lists above 16 MB. When the database to be accessed resides at a remote system (MRO environment), DL/I needs to copy the parameter list and all included parameters in their original format into storage below 16 MB, because the CICS ISC modules require 24-bit addressing for DL/I parameters. The duplicated parameter list below 16 MB is allocated once at the first DL/I call (scheduling call), which includes address re-direction for PL/I programs. The parameters addressed by the parameter list are copied at every DL/I call. The problem is that the pre-allocation of the parameter list during the scheduling call cannot be finally done for the COUNT parameter of a PL/I program. Therefore the parameter list entry for the COUNT parameter of a PL/I program is re-adjusted at the next DL/I call (and all calls to follow). When the same transaction is passing DL/I calls from both PL/I and non-PL/I programs, the parameter list entry for the COUNT parameter would have to be adapted each time the language is changing. Currently this reset is only done for PL/I programs, but not at a change to non-PL/I programs. Therefore - at the first DL/I call after a change from PL/I to non-PL/I - the parameter list will be invalid at the COUNT parameter. Note: DL/I internally treats all programs implemented in HLPI style (EXEC DLI) as non-PL/I programs, which means that no address re-direction is made. Only PL/I programs using the CALL-level interface are considered as PL/I programs, which implies double-addressing for the parameter lists. Therefore the error of an invalid ISC paramter list occurs on the following occasions in an MRO/ISC environment: - Mixed DL/I calls from EXEC DLI-style program implemented in PL/I for VSE or COBOL for VSE, and a program implemented in PL/I for VSE using the CALL-level I/F. - Mixed DL/I calls from CALL-level style program implemented in PL/I for VSE and a program implemented in Assembler, COBOL or RPG using the CALL-level I/F.
Problem conclusion
The address of the COUNT parameter in the DL/I parameter list for the MRO environment will be newly set at each DL/I call to adjust it to the requirements of the current language (PL/I or non-PL/I) and interface style (EXEC DLI or CALL-level).
Temporary fix
**************************************************************** * Bookname: DLZODP Type: Module * * Phase: DLZNUCXX * * Appl. Releases: RDB5 R1IO Prereq.: PN67649 * * Not appl. Rel.: - * * Note: Please add @PQ41670 in column 64 to 71 * **************************************************************** // JOB PQ41670 -------------------------- ARDB5 NAR1IO // OPTION CATAL // EXEC MSHP CORRECT 5746-XX-100(DB5) : PQ41670 /* Prerequisite is PN67649 */ RESOLVES 'ISC PARMLIST ERROR - NON-PLI TO PLI' AFFECTS MACROS=DLZODP TYPE=A INSERT 284508 /* BL MSG260 .. ISSUE D260 ABEND @DA27984 */ LA R5,PSTB16CT RESTORE ADDR OF COUNT PARM 28450910 ST R5,PSTB16CA ... IN ISC PARAMETER LIST 28451010 /$ /* /& // JOB PQ41670 -------------------------- NARDB5 AR1IO // OPTION CATAL // EXEC MSHP CORRECT 5746-XX-100(1IO) : PQ41670 /* Prerequisite is PN67649 */ RESOLVES 'ISC PARMLIST ERROR - NON-PLI TO PLI' AFFECTS MACROS=DLZODP TYPE=A INSERT 032640 /* BL MSG260 .. ISSUE D260 ABEND @DA27984 */ LA R5,PSTB16CT RESTORE ADDR OF COUNT PARM 03264210 ST R5,PSTB16CA ... IN ISC PARAMETER LIST 03264410 /$ /* /& * *-----------------------------------------------------------* * * SC33-6211 (Release Guide) chapter 'Applying Service' * * * may be used as reference for more JCL examples and * * * ignorable ASSEMBLY and/or LNKEDT error messages. * * *-----------------------------------------------------------* // JOB PQ41670 ASSEMBLE // LIBDEF *,SEARCH=("DL/I-prod-sublib,CICS-sublib,other-sublibs") // DLBL IJSYSPH,"punch-work-file",0 // EXTENT SYSPCH,,1,0,xxx,yyy ASSGN SYSPCH,DISK,VOL="volid",SHR // OPTION DECK,NOXREF,NOEDECK // EXEC ASSEMBLY PUNCH ' ACCESS SUBLIB="DL/I-prod-sublib"' END /* // OPTION DECK,SXREF,NOEDECK // EXEC ASSEMBLY COPY DLZODP END , /* CLOSE SYSPCH,cuu // DLBL IJSYSIN,"punch-work-file",0 // EXTENT SYSIPT,,1,0 ASSGN SYSIPT,DISK,VOL="volid",SHR // EXEC LIBR,PARM='MSHP' /* // LIBDEF OBJ,SEARCH=("DL/I-prod-sublib") // LIBDEF PHASE,CATALOG=("DL/I-prod-sublib") * replace XX in DLZNUCXX with the suffix from ACT Gen(s) * or reassemble ACT(s) if no .OBJ member exist. // OPTION CATAL INCLUDE DLZNUCXX // EXEC LNKEDT,PARM='MSHP' /& // JOB RESET CLOSE SYSIPT,cuu /&
Comments
APAR Information
APAR number
PQ41670
Reported component name
5746 DOS/VS DL/
Reported component ID
5746XX100
Reported release
DB5
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2000-09-20
Closed date
2000-09-20
Last modified date
2021-06-29
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UQ47153 UQ47154
Modules/Macros
DLZODP
Fix information
Fixed component name
5746 DOS/VS DL/
Fixed component ID
5746XX100
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU011","label":"Systems - zSystems software"},"Product":{"code":"SG32M"},"Platform":[{"code":"PF054","label":"z/OS"}],"Version":"DB5"}]
Document Information
Modified date:
30 June 2021