Our web app uses Websphere App server 6.1 and db2 database. We got into a situation where a db2 load job essentially prevented the web application from accessing the database and web application just hung.
The problem is after the db2 load job completed for some time, the web application still hung. It looks like a race condition in connection pooling. I was wondering why the connection pooling is not getting back to normal automatically after the load job is long gone?
Are you using container managed persistence? If not, it will be application specific, I'm afraid.
If it's container managed, are you eventually getting connection timeout exceptions?
If not, the only possibility that I can think of at the moment is that you're somehow keeping connections active but not doing anything with them. The configuration solution for this (as opposed to the programming solution, which should likely be investigated depending on the impact of the outage) would be to use the "aged timeout" setting in the datasource's connection pool. In admin console, navigate as follows: JDBC providers > [your db2 provider] > Data sources > [your datasource]> Connection pools
Thanks so much. Actually I was thinking about the same thing: Aged Timeout. However, my collegue said once a connection is being used it would never be aged timeout. IBM doc seems to suggests that the physical connection wil not be discarded if the connection is involved in a transaction when the aged timeout is reached.
Can you give me a snario where we might be keeping connections active but not doing anything with them as you suggested?