View Single Post
  #10 (permalink)  
Old 07-04-09, 10:32
Marcus_A Marcus_A is offline
Registered User
 
Join Date: May 2003
Location: USA
Posts: 5,196
Database memory (including bufferpool memory) is not allocated until the database is activated. A database is activated if there is at least one connection to the database (that is still active and not timed out), or if you explicitly activate the database with the activate command. It is done this way by design so that if you have a lot of databases on a server that are not being used they do not take large amounts of memory resources. It is usually not an issue on most applications that have a connection pool software on the client side that maintains at least one active connection.

If you are using automatic memory and sharing the machine with your web server, I would change the bufferpool memory size from -2 to explicit values that ensures that it is using real memory that is available is not swapping virtual memory. The total memory for all bufferpools on all active databases should probably be set to about 500 MB on your particular machine for starters (bufferpools are allocated in pages depending on bufferpool page size, so you have to do some math).

If you are using connection pooling on the client side, set the minimum number of connections to at least one (not zero) on at least one of your application servers.

However, there may also be some issues with the DB2 server code you are using which is 9.5.0. I would upgrade that to the latest fixpack, which is 9.5.4 if you have DB2 Express, or if you have DB2 Express-C (the free one) then you can get 9.5.2 or 9.7.0. I would also use the same client release as the server release.
__________________
M. A. Feldman
IBM Certified DBA on DB2 for Linux, UNIX, and Windows
IBM Certified DBA on DB2 for z/OS and OS/390
Reply With Quote