A fix is available
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
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