Re: FW: LISTEN/NOTIFY support in JDBC driver?

From: Barry Lind <barry(at)xythos(dot)com>
To: Benjamin(dot)Feinstein(at)guardent(dot)com
Cc: glwatcdr(at)yahoo(dot)com, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: FW: LISTEN/NOTIFY support in JDBC driver?
Date: 2002-01-15 06:23:24
Message-ID: 3C43CADC.40608@xythos.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Ben,

I was looking into this a bit more tonight. I have gotten some
notifications to come through. But not all.

If you apply the following two line patch to current sources you will
get notifications if (and only if) you run with autoCommit = true. If
you set autoCommit to false the backend never sends the notifications to
the client, and I have no idea why. I plan to follow up on that. Given
that this only partly works, I don't want to commit this change into 7.2
as it isn't complete and 7.2 is too close to release.

thanks,
--Barry

*** QueryExecutor.java Mon Jan 14 21:53:38 2002
--- QueryExecutor.java.orig Mon Jan 14 21:54:24 2002
***************
*** 70,77 ****
switch (c)
{
case 'A': // Asynchronous Notify
! int pid =
pg_stream.ReceiveIntegerR(4);
!
connection.addWarning(pg_stream.ReceiveString(connection.getEncoding())
+ " - " +pid );
break;
case 'B': // Binary Data Transfer
receiveTuple(true);
--- 70,77 ----

switch (c)

{

case 'A': // Asynchronous Notify
!
int pid = pg_stream.ReceiveInteger(4);
!
String msg = pg_stream.ReceiveString(connection.getEncoding());

break;

case 'B': // Binary Data Transfer

receiveTuple(true);

Benjamin(dot)Feinstein(at)guardent(dot)com wrote:

> Hey David,
>
> I've forwarded the thread from a few days ago regarding async client
> notifications using the PostgreSQL JDBC interface. Barry answered that it
> was possible, but I've been unable to get the code to work. Anyone got
> working LISTEN/NOTIFY code uding JDBC?
>
> Thanks for any help,
> Ben
>
> -----Original Message-----
> From: Ben Feinstein
> Sent: Monday, January 14, 2002 10:13 AM
> To: barry(at)xythos(dot)com
> Cc: pgsql-jdbc(at)postgresql(dot)org
> Subject: Re: [JDBC] LISTEN/NOTIFY support in JDBC driver?
>
>
> Hey all,
>
> I've tried selecting from the db in between checking for warnings, but still
> no luck? Does anyone have JDBC code that issues a LISTEN, then reaps
> notifications from the connection warnings?
>
> Much thanks!,
> Ben
>
> -----Original Message-----
> From: Barry Lind [mailto:barry(at)xythos(dot)com]
> Sent: Friday, January 11, 2002 12:58 PM
> To: Ben Feinstein
> Cc: pgsql-jdbc(at)postgresql(dot)org
> Subject: Re: LISTEN/NOTIFY support in JDBC driver?
>
>
> Ben,
>
> Since the jdbc driver doesn't poll the server, you would only see
> notifications after interacting with the database in someother way.
> Thus you will periodically need to issue queries to get the
> notifications to be read. (note I havn't tried this, but from looking
> at the code this should be the case).
>
> thanks,
> --Barry
>
>
>
> Benjamin(dot)Feinstein(at)guardent(dot)com wrote:
>
>
>>Hey ya'll,
>>
>>Thanks for the quick reply, Barry! I'm still having trouble getting the
>>notifications from the "SQLWarning Connection.getWarnings()" method. When
>>
> I
>
>>tried to execute multiple LISTEN statments, I get warnings like:
>>
>>java.sql.SQLWarning: NOTICE: Async_Listen: We are already listening on
>>event
>>
>>However, I've never gotten a notification from the warnings. Yes, I am
>>sending the notifies from another connection to the same database. I've
>>attached my Java test program. Could you take a look and see what I'm
>>
> doing
>
>>wrong?
>>
>>Cheers,
>>Ben
>>
>>-----Original Message-----
>>From: Barry Lind [mailto:barry(at)xythos(dot)com]
>>Sent: Wednesday, January 09, 2002 10:10 PM
>>To: Ben Feinstein
>>Cc: pgsql-jdbc(at)postgresql(dot)org
>>Subject: Re: LISTEN/NOTIFY support in JDBC driver?
>>
>>
>>The jdbc driver does support notifications, but in a rather strange way.
>> When the driver receives a notification is takes the notification
>>message and adds it to the list of warnings on the connection. So the
>>way you get notifications is to call getWarnings(). Given that there
>>isn't a concept like notifications in the jdbc API, this is perhaps the
>>best way these can be handled within jdbc, unless someone can suggest a
>>better approach.
>>
>>thanks,
>>--Barry
>>
>>Benjamin(dot)Feinstein(at)guardent(dot)com wrote:
>>
>>
>>
>>>Hello ya'll,
>>>
>>>It appears that the current version of the JDBC interface for PostgreSQL
>>>does not implement asyncronous client notifications. I have been able to
>>>issue a NOTIFY statement through the JDBC driver, but I haven't found how
>>>
>>>
>>to
>>
>>
>>>LISTEN for an client notification. Am I missing something, or does the
>>>JDBC-PgSQL interface not support LISTEN? Does anyone know of a patch to
>>>
>>>
>>the
>>
>>
>>>JDBC-PgSQL interface that enables the LISTEN functionality? I've looked
>>>
>>>
>>back
>>
>>
>>>through the list archives but was unable to find any threads in this
>>>
>>>
>>topic.
>>
>>
>>>I'm running:
>>>PostgreSQL 7.1.3
>>>jdbc7.1-1.2.jar
>>>Sun JDK 1.3.1_01
>>>
>>>Thanks for any help,
>>>Ben
>>>
>>>
>>>
>>>
>>>>Ben Feinstein
>>>>Software Development Engineer, R & D
>>>>W: 678.585.7865 x6726 F: 770.645.8311 M: 678.772.4126
>>>>8302 Dunwoody Pl., Suite 320, Atlanta, GA 30350 www.guardent.com
>>>>_____________________________________________________
>>>>G U A R D E N T
>>>>Enterprise Security and Privacy Programs
>>>>
>>>>
>>>>
>>>>
>>>>
>>>---------------------------(end of broadcast)---------------------------
>>>TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>>>
>>>
>>>
>>>
>>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly
>
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Barry Lind 2002-01-15 06:55:12 Re: Failure in timestamptz of JDBC of 7.2b4
Previous Message Barry Lind 2002-01-15 04:19:37 Re: DatabaseMetaData.java patch (7.1.3)