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

Поиск
Список
Период
Сортировка
От Barry Lind
Тема Re: FW: LISTEN/NOTIFY support in JDBC driver?
Дата
Msg-id 3C43CADC.40608@xythos.com
обсуждение исходный текст
Ответ на FW: LISTEN/NOTIFY support in JDBC driver?  (Benjamin.Feinstein@guardent.com)
Ответы Re: FW: LISTEN/NOTIFY support in JDBC driver?  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список 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.Feinstein@guardent.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@xythos.com
> Cc: pgsql-jdbc@postgresql.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@xythos.com]
> Sent: Friday, January 11, 2002 12:58 PM
> To: Ben Feinstein
> Cc: pgsql-jdbc@postgresql.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.Feinstein@guardent.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@xythos.com]
>>Sent: Wednesday, January 09, 2002 10:10 PM
>>To: Ben Feinstein
>>Cc: pgsql-jdbc@postgresql.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.Feinstein@guardent.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@postgresql.org
>>>
>>>
>>>
>>>
>>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>
>



В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Barry Lind
Дата:
Сообщение: Re: DatabaseMetaData.java patch (7.1.3)
Следующее
От: Barry Lind
Дата:
Сообщение: Re: Failure in timestamptz of JDBC of 7.2b4