IBM Support

PM66235: ABEND04E RC00E2000C FROM DSNSVSVB WHEN IFCID400 IS ACTIVE

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • ABEND04E R00E2000C from DSNSVSVB when turning on the IFCID400
    and running release deallocate packages.
    ACOMDSC2GP or STMT CACHE BLOCKS 2G is filled with SHTE and
    STMT text.
    .
    DB2STGLK/K
    

Local fix

  • Turn off IFCID400
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All DB2 10 for z/OS users of DB2 packages    *
    *                 containing static SQL and COMMIT / ROLLBACK, *
    *                 bound RELEASE(DEALLOCATE) and run with       *
    *                 either DB2 trace IFCID 400 or trace monitor  *
    *                 class 29 active                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: DB2 storage shortage in ACOMDSC2GP /    *
    *                      STMT CACHE BLOCKS 2G pool where the     *
    *                      pool contains an excessive number of    *
    *                      blocks with eye catcher 'SHTE',         *
    *                      resulting in DB2 out-of-storage         *
    *                         ABEND04E RC00E2000C                  *
    *                              at DSNGEPLC . DSNSVSVB +0AC2    *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    In DB2 10 when either DB2 trace IFCID400 or trace monitor
    class 29 is active, DB2 collects statement level statistics
    for each static SQL executed in a DB2 package. These statement
    level statistics are stored in DB2 internal block SHTE in
    the DB2 STMT CACHE BLOCKS 2G pool during the SQL stmt
    execution (note that when IFCID400 is active, both static and
    cached dynamic SQL share usage of this pool). This pool is
    shared across DB2 threads. There is one SHTE block per static
    SQL statement, and the different running copies of that static
    SQL statement used by different DB2 threads share that
    single SHTE block. The lifetime of this SHTE block used for
    static SQL statement level statistics is directly tied to
    the lifetime of both the running copies of the static SQL
    statement and the master copy of its DB2 package in the
    EDM POOL. When all of the running copies of the static SQL
    statement are freed and the master copy of the DB2 package
    in the EDM POOL is also LRU'd out when more EDM POOL space
    is needed for other packages, the internal SHTE block for
    the static SQL statement is also freed. If there is at least
    one copy of the static SQL statement still active for
    a DB2 package, the SHTE block for that static SQL statement
    is not freed.
                                                               .
    In the reported DB2 storage shortage case, a significant
    number of static SQL executions were from DB2 packages
    bound RELEASE(DEALLOCATE) and run while trace IFCID400
    was active. A DB2 thread's copy of a package bound
    as RELEASE(DEALLOCATE) and its static SQL statements will
    remain allocated until that DB2 thread is terminated.
    This means that the internal SHTE block will also remain
    allocated until all of the associated running copies of
    the RELEASE(DEALLOCATE) packages are freed at DB2 thread
    termination and the packages' master copies are LRU'd out
    of the EDM POOL.
    However, in this case, even though the DB2 threads were
    terminated, and the packages bound REL(DEALLOCATE) and their
    copies of the static SQL statements were freed, the internal
    SHTE blocks for these static SQL statements were not freed.
                                                               .
    DB2 Development determined that when the application program
    was bound REL(DEALLOCATE) and issued multiple COMMITs/
    ROLLBACKs (or single COMMIT/ROLLBACK followed by a DB2 implicit
    ending COMMIT), at DB2 thread termination/deallocation DB2 did
    not consider the static SQL that were run and COMMITed in the
    previous units-of-work (UOW). So at deallocation time DB2 did
    not 'de-register' the static SQL statement's usage of the
    internal SHTE block used for that statement.  Therefore, many
    SHTE blocks accumulated in the DB2 STMT CACHE BLOCKS 2G pool
    as if they were still in use by active static SQL statements,
    resulting in the DB2 storage shortage and the reported DB2
    abend.
    

Problem conclusion

  • SOLUTION:
    DB2 thread termination/deallocation code has been changed to
    consider static SQL that were run and COMMITed in any previous
    UOW when either DB2 trace IFCID400 or trace monitor class 29
    was active, and to 'de-register' those static SQL statements'
    usage of the internal SHTE block for statement level statistics.
    
    
    RELATED KEYWORDS: 04E AB04E IFCID400 0400 OFFSET0AC2
                      SQLSTORAGE GROWTH LEAK DB2STGLK/K
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM66235

  • 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

    2012-06-05

  • Closed date

    2012-09-18

  • Last modified date

    2012-11-01

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

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

    UK81878

Modules/Macros

  • DSNXEUFP
    

Fix information

  • Fixed component name

    DB2 OS/390 & Z/

  • Fixed component ID

    5740XYR00

Applicable component levels

  • RA10 PSY UK81878

       UP12/10/03 P F210

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 November 2012