Re: an efficient way of checking if the connection to a db - Mailing list pgsql-jdbc

From Kris Jurka
Subject Re: an efficient way of checking if the connection to a db
Date
Msg-id Pine.BSO.4.61.0512151731120.4830@leary.csoft.net
Whole thread Raw
In response to Re: an efficient way of checking if the connection to a db  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: an efficient way of checking if the connection to a db  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-jdbc

On Thu, 15 Dec 2005, Tom Lane wrote:

> It probably is.  However, sending an empty query string to the backend
> to execute ought to be competitive with a bare Sync.  libpq supports
> that; does JDBC?

You can say Statement.execute(""), but that still does the full extended
query protocol setup:

14:25:48.375 (1)  FE=> Parse(stmt=null,query="",oids={})
14:25:48.377 (1)  FE=> Bind(stmt=null,portal=null)
14:25:48.378 (1)  FE=> Describe(portal=null)
14:25:48.378 (1)  FE=> Execute(portal=null,limit=0)
14:25:48.378 (1)  FE=> Sync
14:25:48.379 (1)  <=BE ParseComplete [null]
14:25:48.380 (1)  <=BE BindComplete [null]
14:25:48.380 (1)  <=BE NoData
14:25:48.380 (1)  <=BE EmptyQuery
14:25:48.381 (1)  <=BE ReadyForQuery(I)

Testing this with the V2 protocol reveals an issue, but it looks like
the server's fault.

14:33:42.550 (1)  FE=> Query("")
14:33:42.550 (1)  <=BE EmptyQuery

At this point the driver is waiting for ReadyForQuery, but the server is
waiting for another query.  The documentation states, "If a completely
empty (no contents other than whitespace) query string is received, the
response is EmptyQueryResponse followed by ReadyForQuery."

Kris Jurka

pgsql-jdbc by date:

Previous
From: Tom Lane
Date:
Subject: Re: an efficient way of checking if the connection to a db
Next
From: Tom Lane
Date:
Subject: Re: an efficient way of checking if the connection to a db