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 по дате отправления: