Re: [PATCH] Support for ping method. - Mailing list pgsql-jdbc

From Kris Jurka
Subject Re: [PATCH] Support for ping method.
Date
Msg-id Pine.BSO.4.63.0604170237370.30846@leary2.csoft.net
Whole thread Raw
In response to Re: [PATCH] Support for ping method.  (Kris Jurka <books@ejurka.com>)
Responses Re: [PATCH] Support for ping method.  (Andrew Oliver <acoliver@jboss.org>)
List pgsql-jdbc

> On Thu, 6 Apr 2006, Michael Barker wrote:
>
>> Attached is a patch that adds support for a ping method on the
>> AbstractJdbc2Connection.  This is useful for JBoss (and other
>> containers) where the container needs to check if the connection is
>> alive before passing it to the caller.  Currently JBoss does a "SELECT
>> 1", but using the new ping method there is a boost in performance.
>> Opening and closing 1000 connections from a datasource:
>>
>
> There are a number of problems with this patch.  In no particular order...
>

6) I'm not sure what guarantees ping is trying to make.  Is it solely
to ensure that the backend is still connected or is it to ensure that the
connection state is ready to receive new commands.  Consider the
following as the attached test case demonstrates:

conn.setAutoCommit(false);
conn.createStatement().execute("SELECT 1/0"); // Forces transaction abort
conn.ping(); // Returns 0 saying connection is "good".
conn.createStatement().execute("SELECT 1"); // Fails b/c in aborted txn.

If you need the stronger guarantee of transaction state validity then I
think you could try the V2 EmptyQuery attempt on the V3 protocol as well.

When JDK1.6 comes out I imagine that this will be replaced by the
Connection.isValid method which does not seem to require anything
beyond a current backend connection.

http://download.java.net/jdk6/docs/api/java/sql/Connection.html#isValid(int)

Kris Jurka

Attachment

pgsql-jdbc by date:

Previous
From: Kris Jurka
Date:
Subject: Re: [PATCH] Support for ping method.
Next
From: Andrew Oliver
Date:
Subject: Re: [PATCH] Support for ping method.