home clear 64x64
en blue 200x116 de orange 200x116 info letter User
suche 36x36
Latest versionsfixlist
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Have problems? - contact us.
Register for free anmeldung-x26
Contact form kontakt-x26

DB2 - Problem description

Problem IC84785 Status: Closed

IN SMP ENVIROMENTS, APPLICATIONS THAT DO POSITIONED UPDATE/DELETE COULD
ENCOUNTER SQL0902N

product:
DB2 FOR LUW / DB2FORLUW / 970 - DB2
Problem description:
The error - "SQLD_BADH "BAD TABLE HANDLE" DIA8521C An incorrect 
table handle was encountered." is returned along with a SQL0902N 
error due to a rare timing hole when the following conditions 
are met: 
 
1) Instance has INTRA_PARALLEL SET to YES and database has 
DFT_DEGREE > 1 
2) Application is using a DELETE WHERE CURRENT of <Cursor_name> 
or UPDATE WHERE CURRENT of <Cursor_name> clause and the cursor, 
more likely, has more than 1 table involved. For example, the 
statement has a join on 2 tables: 
 
DECLARE <Cursor_name> CURSOR FOR <statement with join> 
 
Possible functions returning SQLD_BADH : sqlriridc, 
sqldRowDelete. 
 
<Stacktrace Snippet> 
 
. 
. 
. 
0x0900000009033F38 sqlriridc__FP8sqlrr_cb + 0x200 
0x0900000008E6DB84 sqlriSectInvoke__FP8sqlrr_cbP12sqlri_opparm + 
0x28 
0x0900000008E733E4 sqlrr_process_execute_request__FP8sqlrr_cbi + 
0x5AC 
0x0900000008E312B4 sqlrr_execute__FP14db2UCinterfaceP9UCstpInfo 
+ 0x1AC 
0x0900000005F8D28C executeSection__10pvmPackageFP5sqlcaUib + 
0x7EC 
0x090000000696AD60 executeQuery__3PVMFUib + 0x1A4 
0x0900000006969A60 run__3PVMFv + 0x454 
0x0900000006967298 pvm_entry + 0x460 
0x0900000008DF1B5C sqloInvokeFnArgs + 0xCC
Problem Summary:
**************************************************************** 
* USERS AFFECTED:                                              * 
* ALL                                                          * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See Error Description                                        * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to DB2 UDB version 9.7 Fixpack 7                     * 
****************************************************************
Local Fix:
Recompiling the stored procedure with no SMP or SMP Degree =1 
will prevent the crash. 
 
1) Recompile stored procedure with NO SMP: 
         - Change instance to INTRA_PARALLEL NO; 
         - Restart instance; 
         - Drop procedure   DB2INST1.DELETE_AUDIT_TAB@ 
         - CREATE PROCEDURE SHAPP1.DELETE_AUDIT_TAB()... <-- 
this will create non-SMP section 
         - Change instance back to INTRA_PARALLEL YES 
         - Restart instance; 
 
or 
 
2) Do the same thing but with DFT_DEGREE=1 for db cfg, so 
there's only 1 subagent generating rows
available fix packs:
DB2 Version 9.7 Fix Pack 7 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 8 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9 for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 9a for Linux, UNIX, and Windows
DB2 Version 9.7 Fix Pack 10 for Linux, UNIX, and Windows

Solution
First fixed in DB2 UDB version 9.7 Fixpack 7
Workaround
not known / see Local fix
BUG-Tracking
forerunner  : APAR is sysrouted TO one or more of the following: IC88308 
follow-up : 
Timestamps
Date  - problem reported    :
Date  - problem closed      :
Date  - last modified       :
20.06.2012
30.10.2012
30.10.2012
Problem solved at the following versions (IBM BugInfos)
9.7.FP7
Problem solved according to the fixlist(s) of the following version(s)
9.7.0.7 FixList