I am not very familiar with this driver, but I thought I should point out
a potential bug. I wish I had time to do more investigationn, testing and
debugging...
I encountered a situation in which I could access the database using psql
but not the JDBC driver. This is what I think happened:
The backend issued a NOTICE message. psql handled it gracefully by
printing the message to STDOUT and providing a fine connection. JDBC
driver throws a fatal SQLException.
The following case statements may need to handle NOTICEs differently:
org.postgresql.Connection line 265:
// As of protocol version 2.0, we should now receive the cancellation key and the pid
int beresp = pg_stream.ReceiveChar();
switch (beresp)
{
case 'K':
pid = pg_stream.ReceiveInteger(4);
ckey = pg_stream.ReceiveInteger(4);
break;
case 'E':
case 'N':
throw new SQLException(pg_stream.ReceiveString(encoding));
default:
throw new PSQLException("postgresql.con.setup");
}
// Expect ReadyForQuery packet
beresp = pg_stream.ReceiveChar();
switch (beresp)
{
case 'Z':
break;
case 'E':
case 'N':
throw new SQLException(pg_stream.ReceiveString(encoding));
default:
throw new PSQLException("postgresql.con.setup");
}
Once again, sorry for the uninformed vaugeries. I hope this helps
somewhat.
Mike Adler