Re: Error 08S01 (COMMUNICATION_ERROR)

Lists: pgsql-jdbc
From: Jaime Vizán <jvizan(at)seglan(dot)com>
To: <pgsql-jdbc(at)postgresql(dot)org>
Subject: Error 08S01 (COMMUNICATION_ERROR)
Date: 2006-04-27 10:38:29
Message-ID: 20060427103905.4078A170005@mail.seglan.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Hi,

I’m using PostgresSQL 7.4.7, pg74.215.jdbc3.jar in a computer which has
Debian GNU/Linux 3.1. Sometimes, when the database’s connection is going to
close I get the next PSQLException:

org.postgresql.util.PSQLException: An I/O error has occured while flushing
the output - Exception: java.net.SocketException:

Socket closed

Stack Trace:

java.net.SocketException: Socket closed

at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:99)

at java.net.SocketOutputStream.write(SocketOutputStream.java:136)

at
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:66)

at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)

at org.postgresql.core.PGStream.flush(PGStream.java:411)

at
org.postgresql.jdbc1.AbstractJdbc1Connection.closeV3(AbstractJdbc1Connection
.java:1147)

at
org.postgresql.jdbc1.AbstractJdbc1Connection.close(AbstractJdbc1Connection.j
ava:1133)

………

End of Stack Trace

at org.postgresql.core.PGStream.flush(PGStream.java:415)

at
org.postgresql.jdbc1.AbstractJdbc1Connection.closeV3(AbstractJdbc1Connection
.java:1147)

at
org.postgresql.jdbc1.AbstractJdbc1Connection.close(AbstractJdbc1Connection.j
ava:1133)

at com.seglan.helena.BDConn.close(BDConn.java:112)

at
com.seglan.helena.aplicaciones.DownloadDevolD.finalize(DownloadDevolD.java:1
54)

at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)

at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)

at java.lang.ref.Finalizer.access$100(Finalizer.java:14)

at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)

I have catch this exception and I have got…

PSQLException's error code: 0

PSQLException's cause: null

PSQLException's sql state: 08S01

The PSQLException’s sql state tell me about COMMUNICATION ERROR but
PSQLException’s error code tell me about Successful Completion. I dont know
whether there is an error. I am confuse.

Does anyone explain me why happen this?

Thanks in advance.


From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: Jaime Vizán <jvizan(at)seglan(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Error 08S01 (COMMUNICATION_ERROR)
Date: 2006-04-27 11:34:41
Message-ID: 4450AC51.5050305@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Jaime Vizán wrote:

> java.net.SocketException: Socket closed

> at org.postgresql.core.PGStream.flush(PGStream.java:415)
> at org.postgresql.jdbc1.AbstractJdbc1Connection.closeV3(AbstractJdbc1Connection.java:1147)
> at org.postgresql.jdbc1.AbstractJdbc1Connection.close(AbstractJdbc1Connection.java:1133)
> at com.seglan.helena.BDConn.close(BDConn.java:112)
> at com.seglan.helena.aplicaciones.DownloadDevolD.finalize(DownloadDevolD.java:154)
> at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
> at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
> at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.ja

Closing connections from a finalizer can be a bit hairy, as the
connection itself also has a finalizer that closes it down and it's not
defined which one runs first .. If the connection's finalizer is run
first, you will see this exception.

> The PSQLException’s sql state tell me about COMMUNICATION ERROR but
> PSQLException’s error code tell me about Successful Completion. I dont
> know whether there is an error. I am confuse.

The error code is vendor-specific, and the postgresql driver doesn't
assign any meaning to it: it is always 0.

Use the SQLState, which is somewhat standardized.

-O