Thread: Error 08S01 (COMMUNICATION_ERROR)

Error 08S01 (COMMUNICATION_ERROR)

From
Jaime Vizán
Date:

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.java: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.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.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.

Re: Error 08S01 (COMMUNICATION_ERROR)

From
Oliver Jowett
Date:
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