| From: | Hans Näther <Hans(dot)Naether(at)charite(dot)de> |
|---|---|
| To: | pgsql-jdbc(at)postgresql(dot)org |
| Subject: | Bug receiving NotificationResponse Message v3 |
| Date: | 2004-01-28 10:40:40 |
| Message-ID: | 401791A8.1090808@charite.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-jdbc |
Hello,
I found a problem in the current jdbc driver. My application receives
asynchronous notification messages from the backend. Using postgresql
7.1, it works. When I switch to postgresql 7.4, it doesn't work anymore.
An exception postgresql.con.type is thrown in
org.postgresql.core.QueryExecutor.executeV3. This is because 7.1 uses
protocol version 2 and 7.4 uses protocol version 3. In version 3, the
message format has changed, the message contains additional data
(message length, additional information) => see
http://www.postgresql.org/docs/current/interactive/protocol-message-formats.html
under NotificationResponse.
So the function executeV3 needs to be changed, I propose the following
change:
... (line 129):
switch (c)
{
case 'A': // Asynchronous Notify
int msglen = pgStream.ReceiveInteger(4); // added
int pid = pgStream.ReceiveInteger(4);
String msg = pgStream.ReceiveString(connection.getEncoding());
String param = pgStream.ReceiveString(connection.getEncoding()); //
added
connection.addNotification(new
org.postgresql.core.Notification(msg, pid));
break;
case 'B': // Binary Data Transfer
...
regards
Hans
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bhushan Bhangale | 2004-01-28 10:47:42 | Re: jdbc connection string |
| Previous Message | Kris Jurka | 2004-01-28 06:36:10 | Re: connectivity problem |