-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bob (why not?),

[EMAIL PROTECTED] wrote:
> The second message -- connection has already been closed -- most likely 
> arises from my code structure, which is:
> 
> Connection connection = null;
> PreparedStatement prepStmt = null;
> try
> {
>    Connection connection = getConnection();
>    PreparedStatement prepStmt = connection.prepareStatement(...);
>    ...
> }
> finally
> {
>    if (prepStmt != null) prepStmt.close();
>    if (connection != null) connection.close();
> }

You should use try/catch blocks around the calls to your close methods.
Otherwise, exceptions thrown in your main try/catch block might be
masked by close errors. You want to make sure the original exception
gets thrown, not a secondary one.

> The call to getConnection() in the try block gets a connection from
> the pool.  But the server has closed this connection.  Therefore the
> call to prepareStatement throws a SQLException which is the last
> packet exception.

This is what validationQuery is supposed to fix. When properly
configured, you don't have to worry about this.

> But it's just too much code to write!

So don't write it that way. It's not even remotely necessary. The
finally block will still run "during" an exception throw. That's the
point of the finally clause. Just let the original exception be thrown
by the runtime by catching and logging the secondary one.

> I removed minEvictableIdleTimeMillis and testWhileIdle.

I think that's a good idea.

> Is there any doc about the ping in "/*ping*/ select 1"?

Search for "ping" in the Connector/J documentation. I could only find it
in the changelog, unfortunately.

> And yes, I got these errors even without my driver.

That's good to know.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEUEARECAAYFAkk73zkACgkQ9CaO5/Lv0PC91QCeKd8cDR9xrepFmWDSTtpB2i5k
U6sAmKhTS2c/rbAAxeQtRarMc7lsDDQ=
=a2y4
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to