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

Поиск
Список
Период
Сортировка
От Barry Lind
Тема Re: FW: LISTEN/NOTIFY support in JDBC driver?
Дата
Msg-id 3D72D722.7070505@xythos.com
обсуждение исходный текст
Ответ на FW: LISTEN/NOTIFY support in JDBC driver?  (Benjamin.Feinstein@guardent.com)
Список pgsql-jdbc
This is now fixed in current sources.  See
org.postgresql.PGConnection.getNotifications().

--Barry

Barry Lind wrote:

> 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
>>
>>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>
>



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

Предыдущее
От: Barry Lind
Дата:
Сообщение: Re: setBlob loop performance?
Следующее
От: Barry Lind
Дата:
Сообщение: Re: Issues with Array interface (String parsing)