DB2 - Problem description
Problem IC83957 | Status: Closed |
SQL/PL SQLEXCEPTION HANDLER DOES NOT HANDLE SQL0973N CORRECTLY | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
When memory cannot be allocated at SQL executing in a stored procedure, it returns a SQL0973N (-973). However, any sqlexception handler does not return any error because it fails to handle SQL0973N (-973) and the subsequent processing is successful unexpectedly. Consider the following example: update db cfg for testdb using APPL_MEMORY 2000 CREATE OR REPLACE PROCEDURE memtest BEGIN DECLARE var1 CLOB(2M); DECLARE var2 CLOB(2M); DECLARE var3 CLOB(2M); CALL DBMS_OUTPUT.PUT_LINE('MEMTESTPROC'); END@ BEGIN DECLARE SQLCODE INT; DECLARE msg VARCHAR(1024); DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN GET DIAGNOSTICS EXCEPTION 1 msg = MESSAGE_TEXT; CALL DBMS_OUTPUT.PUT_LINE('ERROR '||SQLCODE||' '|| NVL(msg,'NULL')); END; CALL memtest(); GET DIAGNOSTICS EXCEPTION 1 msg = MESSAGE_TEXT; CALL DBMS_OUTPUT.PUT_LINE('OK '||SQLCODE||' '|| NVL(msg,'NULL')); END@ ---------------------------- Output: OK 0 SQL0973N Not enough storage is available in the "application shared" heap or stack to process the statement. SQLSTATE=00000 In this case, even though the SQLCODE is non-zero, it is not correctly mapped to the relevant SQLSTATE. This leads the Exception handler to think that the statement was successful. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 version 970 fixpack 7 * **************************************************************** | |
Local Fix: | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows | |
Solution | |
Problem is fixed in DB2 version 970 fixpack 7 | |
Workaround | |
not known / see Local fix | |
BUG-Tracking | |
forerunner : APAR is sysrouted TO one or more of the following: IC87896 follow-up : | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 05.06.2012 29.01.2013 29.01.2013 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.0 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.7 |