From: | Phil(dot)Hourihane(at)meridianp2p(dot)com |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | java.net.SocketException: Broken pipe |
Date: | 2003-09-22 12:43:20 |
Message-ID: | OF6400F565.F10706C8-ON80256DA9.0045C24A-80256DA9.0045D215@meridianp2p.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Hello, World.
I have an intermittent problem that I am having trouble with, using
postgresql
7.3.4. It manifests itself as a SocketException...
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:69)
at
java.io.BufferedOutputStream.flush(BufferedOutputStream.java:127)
at org.postgresql.PG_Stream.flush(PG_Stream.java:352)
at
org.postgresql.core.QueryExecutor.sendQuery(QueryExecutor.java:159)
at
org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:70)
...etc...
... but it doesn't seem to correspond to the mails on this list that
mention
this trace. The previous mails warn that this can happen if an earlier
statement
includes a null character (char 0). I tried to reproduce the problem that
way but instead I was prevented by...
java.lang.IllegalArgumentException: \0 not allowed
at
org.postgresql.jdbc1.AbstractJdbc1Statement.escapeString(AbstractJdbc1Statement.java:955)
at
org.postgresql.jdbc1.AbstractJdbc1Statement.setString(AbstractJdbc1Statement.java:917)
at
org.postgresql.jdbc1.AbstractJdbc1Statement.setString(AbstractJdbc1Statement.java:900)
...etc...
Now, the problem seems to occur only intermittently, and will 'repair'
itself
with no action on my part. It does however, seem to occur in clumps - it
will
fail a few times in a short space of time before working again.
I have created a statement at boot time for this purpose (it is a
statement
that gets used a lot, so I prefer to cache it), rather than create a new
statement for each invocation. Some posts on the mailing list mention this
as a problem (the backend shutting down the connection), but I have no
idea
how to control this behaviour.
I don't seen to be able to reproduce this behaviour on demand; I have seen
it in logs of a system that is running long-term, not just a development
box
that is working for a little bit at a time.
It doesn't seem to be related to heavy loads on the system either - the
load
has been pretty light when it occurred.
Has anybody else encountered this problem or had any success in dealing
with it?
PHiL
From | Date | Subject | |
---|---|---|---|
Next Message | Paul Thomas | 2003-09-22 14:18:01 | Re: Begin transaction? |
Previous Message | Bjørn T Johansen | 2003-09-22 11:38:39 | Begin transaction? |