Re: Asynchronous notifications - Mailing list pgsql-jdbc

From Kris Jurka
Subject Re: Asynchronous notifications
Date
Msg-id Pine.LNX.4.33.0402292334420.23449-100000@leary.csoft.net
Whole thread Raw
In response to Asynchronous notifications  (Jean-Christophe ARNU <jx@adorenepasetrederangeparlespamtuxfarm.org>)
List pgsql-jdbc

On Thu, 26 Feb 2004, Jean-Christophe ARNU wrote:

> Hi hackers,
>     I've dived into the jdbc QueryExecutor code to see how Notifications
> are handled. Notifications are handled into the execute() method. In
> this method, return from pg_stream is read after SendQuery() method is
> called. My quite is quite "architectural". I would like to know the
> reason that makes the final user to perform a query to get notifications
> from the server. My question is directly linked to my problem : I would
> like to avoid in my client code to have a thread executing (so sending
> packets) SQL void string commands each n seconds in order to notify
> observers or other classes. So do you think it is possible do have a
> solution with pg JDBC driver? How can I do this? Does  JDBC conformance
> tests does allow this?
>

The notifications cannot be received without querying the server.  The
only way the driver could handle this would be to implement the polling
loop that you are currently doing now.  This is really something the
application should do and not the driver.

Someone else has advocated registering a callback with the driver for a
cleaner interface to handle notifications which may have some merit, but
it doesn't solve the polling problem and introduces another set of issues
regarding either thread safety or corrupting the PGStream object or
deadlocking.

http://gborg.postgresql.org/project/pgjdbc/bugs/bugupdate.php?559


Kris Jurka


pgsql-jdbc by date:

Previous
From: Bruce Ashton
Date:
Subject: Re: CLASSPATH Problem ????
Next
From: Kris Jurka
Date:
Subject: Re: Jdbc3PoolingDataSource and Statement relationship???