DB2 - Problem description
Problem IC80249 | Status: Closed |
SQL0973 ERRORS, DATABASE MEMORY OVERFLOW EXHAUSTED AFTER INCREASE BUFFERPOOL FAILURE | |
product: | |
DB2 FOR LUW / DB2FORLUW / 970 - DB2 | |
Problem description: | |
When an alter bufferpool command fails trying to increase the size of the bufferpool, not all memory allocated to the point of failure is freed back to the database memory set. The bufferpool heap (specific to the bufferpool being altered) caches the memory that was used for the additional bufferpool descriptors (metadata). In the case of constrained memory (eg. fixed database memory, fixed instance memory, or operating system limits), it may be that database memory overflow has been exhausted and database memory can't grow any further. Areas that rely on using additional database memory overflow (such as package cache, database heap growing beyond its initial size to load additional table information) may no longer be able to allocate memory. This may result in SQL0973 and other failures related to out-of-memory conditions. After the bufferpool increase failure, db2pd -db <database> -mempools may show that overflow is exhausted: Database Partition 0 -- Database SAMPLE -- Active Memory Sets: Name Size(Kb) DBP Type Unrsv(Kb) Used(Kb) HWM(Kb) Cmt(Kb) SAMPLE 126848 0 1 0 70784 71808 71808 note the largest portion of the memory required for bufferpools, that of the bufferpool memory itself, is released, and it is only rare cases that the smaller unreleased cached memory for bufferpool metadata causes a problem. (typically it requires a fixed database_memory setting resulting in a relatively constrained configuration, and a large error in the size specified in the alter bufferpool command). A workaround is to issue a second "alter bufferpool" which will release any leftover cached memory upon success. It is enough just to raise or lower the number of pages by 1 from the current (pre-failure) size. | |
Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All * **************************************************************** * PROBLEM DESCRIPTION: * * See Error Description * **************************************************************** * RECOMMENDATION: * * See local fix, correct ALTER BUFFERPOOL statement if in * * error. * **************************************************************** | |
Local Fix: | |
Issue an additional alter bufferpool command, increasing the number of pages by one from the current size. This will release any leftover retained memory from the failing bufferpool increase operation. The bufferpool can then be altered back to the original size. | |
available fix packs: | |
DB2 Version 9.7 Fix Pack 6 for Linux, UNIX, and Windows | |
Solution | |
Problem was first fixed in DB2 Version 9.7 Fix Pack 6 | |
Workaround | |
see Local Fix | |
BUG-Tracking | |
forerunner : APAR is sysrouted TO one or more of the following: LI76533 IC80274 IC84240 follow-up : | |
Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified : | 06.12.2011 16.07.2012 16.07.2012 |
Problem solved at the following versions (IBM BugInfos) | |
9.7.FP6 | |
Problem solved according to the fixlist(s) of the following version(s) | |
9.7.0.6 |