IBM Support

PI62647: INTERMITTENT ABEND0C4-11 WHEN CALLING SYSPROC.ADMIN_INFO_SYSPARMFROM REXX WITH ZERO LENGTH NULL OUTPUT PARAMETERS.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Calling SYSPROC.ADMIN_INFO_SYSPARM from REXX and supplying zero
    length VARCHARS for the RETURN_CODE and MESSAGE variables can
    result in an intermittent ABEND0C4 in REXX module IRXINIT IRXXVA
    due to an invalid address/length pair supplied in an SHVBLOCK to
    set a variable.  The invalid address/length pair caused the rexx
    interpreter to abend on a MOVE LONG instruction when it cross a
    page boundary into a page that was not allocated.
    DSNREXX did not inspect the returned SQLDA information closely,
    and while the MESSAGE variable null indicator was marked NULL
    (-1) by DB2, the length returned was invalid from DB2.  The
    invalid length was used in the SHVVALL field of the SHVBLOCK
    which caused the abend in REXX.  When a fetched value from DB2
    is NULL, DSNREXX, in module DSNTZNTO should set a zero length
    for the variable in the SHVBLOCK.
    Additionally, while the invalid length returned in the MESSAGE
    variable resulted in this abend, there was another issue found
    which is not being addressed.
    
    In this intermittently failing case that abended, when the
    VARCHAR length returned for variable MESSAGE was invalid, (x92A4
    was the invalid length), the RETURN_CODE_IND null indicator
    variable was also invalid.  It contained a value of xF018.
    This is an example of the call used which intermittently
    resulted in the described ABEND:
    .
    DB2_MEMBER      = ""
    DB2_MEMBER_IND  = -1.
    RETURN_CODE     = "" ;
    RETURN_CODE_IND = -1.
    MESSAGE         = "" ;
    MESSAGE_IND     = -1.
    

Local fix

  • The following code will avoid the abend:
    .
    DB2_MEMBER      = ""
    DB2_MEMBER_IND  = -1.
    RETURN_CODE     = COPIES(" ",8) ;
    RETURN_CODE_IND = -1.
    MESSAGE         = COPIES(" ",1000);
    MESSAGE_IND     = -1.
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All DB2 10/11 for z/OS users who use         *
    *                 DB2 REXX Language support (DSNREXX) to call  *
    *                 Stored Procedures with nullable return       *
    *                 messages.                                    *
    ****************************************************************
    * PROBLEM DESCRIPTION: Calling a stored procedure from REXX    *
    *                      and supplying zero length VARCHARS for  *
    *                      the RETURN_CODE and MESSAGE variables   *
    *                      can result in an intermittent ABEND0C4  *
    *                      in REXX module IRXINIT IRXXVA.          *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    DSNREXX did not inspect the returned SQLDA information closely,
    and while the MESSAGE variable null indicator was marked NULL
    (-1) by DB2, the length returned was invalid from DB2.
    The invalid length was used in the SHVVALL field of the SHVBLOCK
    which caused the abend in REXX. When a fetched value from DB2 is
    NULL, DSNREXX should set a zero length for the variable in the
    SHVBLOCK.
    

Problem conclusion

  • If null indicator value is null for return messages, force the
    length of the variable to be 0 instead of invalid value.
    This problem is fixed in DB2 12 by APAR PI87157.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI62647

  • Reported component name

    DB2 OS/390 & Z/

  • Reported component ID

    5740XYR00

  • Reported release

    A10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-05-17

  • Closed date

    2017-10-26

  • Last modified date

    2017-12-02

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PI87157 UI51489 UI51490

Modules/Macros

  • DSNTZNTO
    

Fix information

  • Fixed component name

    DB2 OS/390 & Z/

  • Fixed component ID

    5740XYR00

Applicable component levels

  • RA10 PSY UI51489

       UP17/11/11 P F711

  • RB10 PSY UI51490

       UP17/11/11 P F711

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":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSEPEK","label":"Db2 for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
02 December 2017