A fix is available
APAR status
Closed as program error.
Error description
ABEND0C4 RC00000038 IN DSNXRINS +05C2 OFFSET05C2 WHEN EXECUTING A MIGRATED V9 PACKAGE CALLING AN UDF
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All DB2 10 for z/OS users of packages bound * * on DB2 for z/OS V8 or DB2 9 for z/OS that * * contain queries accessing Table UDFs. * **************************************************************** * PROBLEM DESCRIPTION: An ABEND0C4 rc38 can occur at location * * DSNXRINS +05C2 or OFFSET05C2 when * * executing a package that was bound on * * DB2 v8 or DB2 v9 that contains a query * * that accesses a Table UDF (User Defined * * Function). * **************************************************************** * RECOMMENDATION: * **************************************************************** An ABEND0C4 rc38 can occur at location DSNXRINS +05C2 when executing a package that was bound on DB2 v8 or DB2 v9 that contains a query that accesses a Table UDF (User Defined Function). The problem occurs during runtime or at execution time when DB2 doesn't take the proper code path for a package that was bound on DB2 v8 or DB2 v9 that contains a query that accesses a Table UDF. Because an improper code path is taken, an incorrect module is accessed which leads to the ABEND0C4 during processing. In the reported case, the failure occurred when executing a package that originated on a DB2 v9 subsystem. The following simple example illustrates how this failure can occur. Step 1. On a DB2 v9 system, Create a User Defined Function (UDF) that is a Table UDF. CREATE FUNCTION SCNI7001.CHK() RETURNS TABLE(PROD_ID CHAR(6), PRODNAME CHAR(30), STATUS CHAR(12)) EXTERNAL NAME UDF001 ... This UDF will operate on values from a defined user Table. Step 2. Bind and linkedit the UDF001 UDF program package. Step 3. In an application, declare the following cursor and host variable. EXEC SQL DECLARE C1 CURSOR FOR SELECT PRODNAME FROM TABLE (SCNI7001.CHK()) AS T1 WHERE PROD_ID ='P12191'; COLA CHAR(30); Fetch from the cursor EXEC SQL FETCH C1 INTO :COLA; Step 4. Bind the application program package on DB2 v9. Step 5. After migrating from DB2 v9 to DB2 v10, execute the bound program package on v10. The failure mentioned above can occur.
Problem conclusion
The code in DB2 runtime is modified to take the proper code path for a DB2 v8 or DB2 v9 bound package that contains queries that can access a Table UDF. Additional Keywords: SQLUDF SQLTUDF SQLMIGRATION
Temporary fix
Comments
APAR Information
APAR number
PM54525
Reported component name
DB2 OS/390 & Z/
Reported component ID
5740XYR00
Reported release
A10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2011-12-15
Closed date
2012-02-13
Last modified date
2012-03-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK76141
Modules/Macros
DSNXRGPL
Fix information
Fixed component name
DB2 OS/390 & Z/
Fixed component ID
5740XYR00
Applicable component levels
RA10 PSY UK76141
UP12/02/28 P F202
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:
01 March 2012