IBM Support

PQ41670: INVALID ISC PARAMETER LIST WITH PL/I PROGRAMS

A fix is available

Subscribe

You can track all active APARs for this component.

 

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

  • RDB5 PSY UQ47153

       UP00/10/02 P E251

  • R1IO PSY UQ47154

       UP00/10/02 P E251

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