|
Problem |
Even though the WebSphere® Application Server code will
close ResultSet objects before returning the prepared statement objects to
the cache, the application code must explicitly close the ResultSet
objects. |
|
Cause |
WebSphere Application Server is not required to close the
ResultSet objects for the application, and while the ResultSet
objects eventually do close, it is not done immediately. In addition, the
JDBC™ driver might not close the ResultSet objects immediately after it
receives the ResultSet.close() method from the application.
The result can be a lag between the time the application has called close
on the preparedStatement object and the time that the
ResultSet is actually removed from memory. On systems with a
large Statement cache, this can result in a large build-up of
resultSet objects at a single instance, which can cause
java.lang.OutOfMemoryErrors to be logged in the SystemOut.log or
SystemErr.log. |
|
Solution |
A J2EE application must explicitly call close on the
ResultSet objects to make sure they are removed from memory as
soon as possible. |
|
|
|
|
|
|