Ian Boyd wrote:
>Customer is running a load test against a websphere application that uses
DB2. While the load test is running the memory usage of DB2 climbs from
x up to y. When the load test ends, the memory usage of DB2 returns to x.
However, sometimes after running the load test the memory usage does not
drop down to x right away; sometimes it takes a few hours. This "problem"
exists with their current live version of the software, and the version
we want to install. Customer will not install update until this "problem"
is resolved.
Customer is a government organization, in which the DB2 admin, the DB2
server admin, the server memory usage admin have collectivly as much
knowledge as a sack of door knobs.
Besides, "Go f*ck yourself.", what can we tell the customer?
Make sure that the application is closing the connection every so often, at
least every 100 transactions. Here is a quote from the 8.2 Programming
Client Applications manual.
<begin quote>
"Closing a connection to a JDBC data source
When you have finished with a connection to a data source, it is essential
that you close the connection to the data source. Doing this releases the
Connection object's DB2 and JDBC resources immediately. To close the
connection to the data source, use the close method.
For example:
Connection con;
...
con.close();
If autocommit mode is not on, the connection needs to be on a unit-of-work
boundary before you close the connection."
<end quote>
I had a programming using IBM Content Manager appliction that was running
out of memory on numerous calls to an API to load data. Once the programmer
starting closing the connection after 100 calls, everything worked fine.