A fix is available
APAR status
Closed as program error.
Error description
ABEND0C4 RC00000038 at DSNLILLM DSNLCMRL OFFSET142E FOR A DISTRIBUTED SQL WITH NON ATOMIC MULTI-ROW INSERT AND LOB Additional keywords and symptoms: ******************************** DB2DDF DDF DSNLILLM DSNLCMRL
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All DB2 9, DB2 10, and DB2 11 for z/OS users * * of non-atomic multirow insert (MRI) with LOB * * data in a distributed environment. * **************************************************************** * PROBLEM DESCRIPTION: An ABEND0C4 RC00000038 at DSNLCMRL * * offset 142E (offset142E) can occur * * when a null LOB value is inserted into * * a not null LOB column during a non- * * atomic MRI operation at a remote DB2 * * server. Instead, an SQLCODE -253 * * should be expected for the error * * condition. * **************************************************************** * RECOMMENDATION: * **************************************************************** An ABEND0C4 RC38 can occur at location DSNLCMRL offset 142E (offset142E) when a null LOB value is inserted into a not null LOB column during a non-atomic MRI (multi-row insert) operation at a remote DB2 server. Instead, an SQLCODE -253 should be returned for the error condition. The following example helps to illustrate the problem. 1. Create a Table with a not null LOB column on a remote server. CONNECT TO STLEC1B; CREATE TABLE T1 (C1 INTEGER, X1 CLOB(1000) NOT NULL); 2. Create a non-atomic MRI application against a remote server. DCL LOB1(2) SQL TYPE IS CLOB(1000); DCL HID(2) BIN FIXED(15); HID(1) = -1; HID(2) = 0; LOB1_DATA(1) = 'TEST1'; LOB1_LENGTH(1) = 5; LOB1_DATA(2) = 'TEST2'; LOB1_LENGTH(2) = 5; EXEC SQL CONNECT TO STLEC1B; EXEC SQL INSERT INTO T1(X1) VALUES(:LOB1:HID) FOR 2 ROWS NOT ATOMIC CONTINUE ON SQLEXCEPTION; 3. Execute the application. The first element of LOB1 is a null, but column X1 is not null. An SQLCODE -407 (SQLCODE407) is generated during the non-atomic MRI when inserting a NULL into a not NULL column. However, DB2 does not handle this error properly and set the LOB source pointer for the second element in the LOB1 array. This eventually leads to the above abend when processing the second not null LOB value in the LOB1 array.
Problem conclusion
The code in DB2 has been modified to process the error correctly and avoid the abend. Also, for this case, an SQLCODE253 will be returned to the application as expected. Additional Keywords: SQLMRI SQLCODE407 SQLCODE253 SQLINSERT SQLLOB
Temporary fix
Comments
APAR Information
APAR number
PM95921
Reported component name
DB2 OS/390 & Z/
Reported component ID
5740XYR00
Reported release
910
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2013-08-27
Closed date
2013-09-30
Last modified date
2013-11-04
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UK98076 UK98077 UK98078
Modules/Macros
DSNXRIHS DSNXRIS9
Fix information
Fixed component name
DB2 OS/390 & Z/
Fixed component ID
5740XYR00
Applicable component levels
RA10 PSY UK98076
UP13/10/17 P F310
RB10 PSY UK98077
UP13/10/17 P F310
R910 PSY UK98078
UP13/10/17 P F310
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":"9.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":"9.1","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
04 November 2013