IBM Support

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

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error 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
    

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
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * ALL                                                          *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * See Error Description                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to DB2 UDB version 9.7 Fixpack 7                     *
    ****************************************************************
    

Problem conclusion

  • First fixed in DB2 UDB version 9.7 Fixpack 7
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC88308

  • Reported component name

    DB2 FOR LUW

  • Reported component ID

    DB2FORLUW

  • Reported release

    A10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-11-17

  • Closed date

    2013-01-17

  • Last modified date

    2013-01-17

  • APAR is sysrouted FROM one or more of the following:

    IC84785

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    DB2 FOR LUW

  • Fixed component ID

    DB2FORLUW

Applicable component levels

  • R970 PSN

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSEPGG","label":"DB2 for Linux, UNIX and Windows"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
17 January 2013