Обсуждение: An I/O error occured while sending to the backend.
I am developing using the new PostgreSQL 8.0.0 rc5 under Windoz XP (sorry). I am also using Eclipse with the MyEclipseWorkbench and ACCESSING A DATABASE ON localhost. In the code I make a valid connection and immediately set up a prepared statement and execute a query. The code is: pstmt = connection.prepareStatement(SQL_GET_SEQUENCE); pstmt.setString(1, this.name); rs = pstmt.executeQuery(); The query is: private static final String SQL_GET_SEQUENCE = "SELECT " + "seed " + "FROM " + "stocks.sequencer " + "WHERE " + "name = ?"; or SELECT seed FROM stocks.sequencer WHEREname = 'test_sequence' I am using the pg80b1.308jdbc3.jar jdbc driver. The above query works through pgAdmin III and the MyEclipse Database Explorer.... But when I run the above java code I receive the infamous Exception: java.io.IOException: Stream closed Stack Trace: java.io.IOException: Stream closed at sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:38) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:151) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213) at org.postgresql.core.PGStream.flush(PGStream.java:485) at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:616) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:165) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:363) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:308) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:223) at com.scawa.stockanalyzer.db.Sequencer.reseed(Sequencer.java:95) at com.scawa.stockanalyzer.db.Sequencer.next(Sequencer.java:73) at com.scawa.stockanalyzer.test.Tester.main(Tester.java:46) Others have said this is a TCP/IP problem with a firewall, but it's pretty apparent that since I'm accessing "localhost" (jdbc:postgresql://localhost:5432/test_database) that It's not a "firewall" problem UNLESS there's a problem with the Windoz XP firewall. Any ideas? Suggestions? Stephen McConnell =====
Stephen McConnell wrote: > Exception: java.io.IOException: Stream closed > Stack Trace: > java.io.IOException: Stream closed > Others have said this is a TCP/IP problem with a firewall, but it's > pretty apparent that since I'm accessing "localhost" > (jdbc:postgresql://localhost:5432/test_database) that It's not a > "firewall" problem UNLESS there's a problem with the Windoz XP > firewall. No, it doesn't look like a firewall problem -- that usually manifests as a connection refused or a connection reset by peer. This looks like the driver is closing the connection itself, but not invalidating the connection. I'd suspect an earlier error on the connection is causing this. Do you have a complete testcase I can try? -O
I'm gonna tell on myself on this one... and it embarrases me more than I can say. I had written a DBManager class that manages connections. It was a first iteration and I was just using the simple DriverManager.getConnection(....) method before tackling connection pooling. In the DBManager class where I had my "getConnection()" method, I had my standard JDBC try... catch... finally.... block. I got the connection, but in my finally block... like I ALWAYS do when I write a try... catch... finally.... block, I closed the resources. One of which was the "connection".... :( Hence, the IO error..... Thanks for the answer.... once I began looking at the code to give you an example, I found it. Stephen McConnell --- Oliver Jowett <oliver@opencloud.com> wrote: > Stephen McConnell wrote: > > > Exception: java.io.IOException: Stream closed > > Stack Trace: > > java.io.IOException: Stream closed > > > Others have said this is a TCP/IP problem with a firewall, but it's > > pretty apparent that since I'm accessing "localhost" > > (jdbc:postgresql://localhost:5432/test_database) that It's not a > > "firewall" problem UNLESS there's a problem with the Windoz XP > > firewall. > > No, it doesn't look like a firewall problem -- that usually manifests > as > a connection refused or a connection reset by peer. This looks like > the > driver is closing the connection itself, but not invalidating the > connection. I'd suspect an earlier error on the connection is causing > this. > > Do you have a complete testcase I can try? > > -O > =====