Bernt M. Johnsen wrote:
Hi,
Some comments:
1) It is considered good parctice to clase all JDBC object when they
are not needed and free the underlying db resources as quicklya s
possible.
2) Closing connections before statements is obviously not correct but
probably harmless in most situations.
This is not correct to do (calling Statement.close() after closing the
Connection) and i would suggest avoiding this coding style. Fortunately
the JDBC spec requires a subsequent call to Statement.close() to be a
no-op when the Statement has already been closed but why do this at all?
3) I would really hae liked to take peek at the connection pool your
are using to figure out what happens here. Where does this JdbcUtil
you are using coe from. Equinox?
Bernt
Xanana Gusmao wrote (2006-12-12 04:00:58):
On reading the javadoc, it is mentioned that:
A ResultSet object is automatically closed by the Statement object that
generated it when that Statement object is closed, re-executed, or is used to
retrieve the next result from a sequence of multiple results.
Thus I don't close the ResultSet anymore.
To solve the problem, Connection needs to be closed prior to Statements.
e.g. This does not throw any SQLException
finally
{
try
{
conn.close();
statement.close();
}
catch( SQLException sqle )
{
...
}
}