Anjan wrote:
>
> Hi Rodney/John,
>
> >I'm not sure what is being proposed here, so if this is wrong let me
> >know. But code that is something like the following is not a good idea:
> >
> >Connection con = pool.getConnection();
> >...do something...
> >con.close();
> >...
> >if (!con.isClosed())
> > con.close();
>
> As I said earlier, what I'm doing here is something like this
>
> void func() {
> Connection conn = null;
> try {
> for (i = 0; i < NUM_DATABASES; ++i) {
> conn = DriverManager.getConnection(driverURL);
> // do something with connection .......
> conn.close();
> }
> } // end try
> catch() {
> //.
> }
> finally {
> // Try to be sure to clean the resources
> if (!conn.isClosed()) {
> conn.close();
> } // end if
> } // end finally
> } //end func
>
I would suggest inverting try/catch/finally and for loop so you have
for
try
conn = getConnection
catch
...
finally
conn.close()
end for
or if you want the exception to abort the for loop
try
for
try
conn = getConnection
finally
conn.close()
end for
catch
These variation will guarantee that close be called once and only once.
john mcnally
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>