Thread: Fastest way to check aliveness of connection

Fastest way to check aliveness of connection

From
Daniel Migowski
Date:
Hello,

I want to implement a c3p0 ConnectionTester and now need a fast way to
check for the alivelyness of a Connection. Currently I issue a "select
1" to the database and if I don't get an exception I assume the
connection is still alive.

Is there a faster way? How can I check if the underlying socket is still
alive without doing a JDBC request? This has to work only with
PostgreSQL JDBC, so I can cast to any postgres interface available.

With best regards,
Daniel Migowski

Re: Fastest way to check aliveness of connection

From
Oliver Jowett
Date:
Daniel Migowski wrote:
> Hello,
>
> I want to implement a c3p0 ConnectionTester and now need a fast way to
> check for the alivelyness of a Connection. Currently I issue a "select
> 1" to the database and if I don't get an exception I assume the
> connection is still alive.
>
> Is there a faster way? How can I check if the underlying socket is still
> alive without doing a JDBC request? This has to work only with
> PostgreSQL JDBC, so I can cast to any postgres interface available.

Running an empty query ("") is probably the simplest way.

In theory you could do something slightly faster at the protocol level
(just send Sync and wait for ReadyForQuery) but there's no interface
currently exposed to do that and I doubt that it will be much faster
than an empty query anyway.

-O

Re: Fastest way to check aliveness of connection

From
Daniel Migowski
Date:
Hello Oliver,

Oliver Jowett schrieb:
> Running an empty query ("") is probably the simplest way.
>
> In theory you could do something slightly faster at the protocol level
> (just send Sync and wait for ReadyForQuery) but there's no interface
> currently exposed to do that and I doubt that it will be much faster
> than an empty query anyway.
Yes, I investigated that, but since the normal query procedure also just
sends one package, the gain for just sending the sync does not really
matter. Of course, your idea with the empty query is great. Thanks alot.

With best regards,
Daniel Migowski