IBM Support

JR30285: PERVASIVE MEMORY LEAK IN DB2 VERSION 9.5 WHEN COMPILING SQL STAT EMENTS THAT USE SQL/XML FUNCTIONS OR XQUERY

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • In DB2 version 9.5, a small amount of private memory is
    leaked each time an SQL statement that uses SQL/XML functions
    or XQuery is compiled. These SQL statements can be issued
    from external applications, or by a DB2 functions such as
    the health monitor or automatic table maintenance.
    
    While disabling these DB2 functions reduces the rate of the
    leak, it does not entirely eliminate it, as there is always
    some internal DB2 function which includes SQL statements
    that use SQL/XML functions or XQuery.
    .
    Symptoms of this memory leak include:
    - Continuous increase of memory usage both inside the DB2
    process and on the system overall
    - Out-of-memory errors reported by the database manager
    - Side effects such as the inability to connect to DB2
    databases
    - System memory or paging space exhaustion
    .
    This memory is allocated directly from the process
    malloc heap, and does not show up in any of the DB2 memory
    monitoring tools  (db2pd, db2mtrk, snapshot).
    .
    The following conditions can increase the rate of this memory
    leak:
    - Compiling SQL statements that use SQL/XML functions or
    XQuery
    - Enabling automatic table maintenance. By default, automatic
    table maintenance is set to ON so these operations are enabled.
    - Running the health monitor. By default, the health_mon
    database manager configuration        parameter is set to ON, an
    agent collects information about the health of the objects you
    have
    selected.
    - A smal package cache might reduce the number of SQL
    statements which are retained in the cache, increasing the need
    of statement compilation.
    

Local fix

  • To disable the function that causes the memory leak, run the
    following commands:
    db2set DB2_COMPILER_XML_OVERRIDES=1
    db2stop
    db2start
    

Problem summary

  • USERS AFFECTED: ALL systems with any XML processing (including
    HMON etc.).
    
    PROBLEM DESCRIPTION:
    
    In DB2 version 9.5, a small amount of private memory is
    leaked each time an SQL statement that uses SQL/XML functions
    or XQuery is compiled. These SQL statements can be issued
    from external applications, or by a DB2 functions such as
    the health monitor or automatic table maintenance.
    
    While disabling these DB2 functions reduces the rate of the
    leak, it does not entirely eliminate it, as there is always
    some internal DB2 function which includes SQL statements
    that use SQL/XML functions or XQuery.
    .
    Symptoms of this memory leak include:
    - Continuous increase of memory usage both inside the DB2
    process and on the system overall
    - Out-of-memory errors reported by the database manager
    - Side effects such as the inability to connect to DB2
    databases
    - System memory or paging space exhaustion
    .
    This memory is allocated directly from the process
    malloc heap, and does not show up in any of the DB2 memory
    monitoring tools  (db2pd, db2mtrk, snapshot).
    .
    The following conditions can increase the rate of this memory
    leak:
    - Compiling SQL statements that use SQL/XML functions or
    XQuery
    - Enabling automatic table maintenance. By default, automatic
    table maintenance is set to ON so these operations are enabled.
    - Running the health monitor. By default, the health_mon
    database manager configuration        parameter is set to ON, an
    agent collects information about the health of the objects you
    have
    selected.
    - A small package cache might reduce the number of SQL
    statements which are retained in the cache, increasing the need
    of statement compilation.
    
    PROBLEM SUMMARY:
    
    see Problem Description.
    

Problem conclusion

  • The fix for this problem is included in DB2 Version 9.5 fixpack
    3.
    

Temporary fix

  • To disable the function that causes the memory leak, run the
    following commands:
    db2set DB2_COMPILER_XML_OVERRIDES=1
    db2stop
    db2start
    

Comments

APAR Information

  • APAR number

    JR30285

  • Reported component name

    DB2 UDB ESE WIN

  • Reported component ID

    5765F4101

  • Reported release

    950

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2008-08-22

  • Closed date

    2009-03-05

  • Last modified date

    2009-03-05

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

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

    JR30306

Fix information

  • Fixed component name

    DB2 UDB ESE WIN

  • Fixed component ID

    5765F4101

Applicable component levels

  • R810 PSN

       UP

  • R820 PSN

       UP

  • R910 PSN

       UP

  • R950 PSN UP

       JR30285

[{"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":"950","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
05 March 2009