Re: [INTERFACES] Using Postgres's NOTIFY/LISTEN - Mailing list pgsql-interfaces

From Peter T Mount
Subject Re: [INTERFACES] Using Postgres's NOTIFY/LISTEN
Date
Msg-id Pine.LNX.4.04.9812021844280.682-100000@maidast.retep.org.uk
Whole thread Raw
In response to Re: [INTERFACES] Using Postgres's NOTIFY/LISTEN  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [INTERFACES] Using Postgres's NOTIFY/LISTEN  (Herouth Maoz <herouth@oumail.openu.ac.il>)
List pgsql-interfaces
On Wed, 2 Dec 1998, Tom Lane wrote:

> Peter T Mount <peter@retep.org.uk> writes:
> > On Wed, 2 Dec 1998, John Bosch wrote:
> >> I'm using Postgresql as the database for a Java application I am writing
> >> and would like to use the NOTIFY/LISTEN feature of Postgres.
>
> > Ok, you've got me thinking... It shouldn't be too difficult to add NOTIFY
> > support. I'll have a look at it during this morning, and I'll get back to
> > you.
>
> NOTIFY is no problem --- there's no particular reason not to issue
> NOTIFY as a plain SQL command.  It's the LISTEN side of things that
> will require some driver support.
>
> Ideally, you'd like to be able to invoke an application-supplied
> callback routine asynchronously when a notify message arrives.
> I don't know enough about Java to know if it has a well-defined
> event loop mechanism, but if it does and your driver can cause events
> to be issued, you should be in fat city.

The 1.1 AWT uses a listener model for it's events. I was thinking of
creating an Interface that defines a method that is called when a notify
occurs. Then, the client can create a class that implements this
Interface, and simply calls an addListener() method in the driver. Then,
any notify's received will cause the listener to be called.

The client can then stop this with the removeListener() method.

> You might care to look at libpgtcl's listen support in 6.4 --- it
> automatically issues LISTEN and UNLISTEN commands when the application
> registers or deregisters a callback request.

I was thinking along those lines for the addListener() and
removeListener() methods.

So far, today has been hell at work (as usual, NT decides to commit
suicide), so I didn't get round to looking at this. I'll do that shortly.

--
       Peter T Mount peter@retep.org.uk
      Main Homepage: http://www.retep.org.uk
PostgreSQL JDBC Faq: http://www.retep.org.uk/postgres
 Java PDF Generator: http://www.retep.org.uk/pdf


pgsql-interfaces by date:

Previous
From: Tom Lane
Date:
Subject: Re: [INTERFACES] Using Postgres's NOTIFY/LISTEN
Next
From: martin@axe.net.au
Date:
Subject: Error Messages