Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> JDBC error: "Got minus one from a read call"
Here's a tricky one...
I am running Oracle's Jdbctest program with ojdbc14.jar (9.2.0.3) on a Solaris 9 system against an 8.1.7.4 database on Solaris 8. The program only runs successfully until the database's listener (8.1.7.4) does a service_register, then the Jdbctest program fails with "Got minus one from a read call".
I have tried this with various JVMs and Oracle JDBC jars (orajdbc, even classes12.zip). Below is a network trace, listener log, and java stack trace
Any hints? Thanks in advance!
Steve
Network Trace - Notice the databases aborts during session port
negotiation:
1 0.00000 Client -> OracleDB TCP D=1521 S=33173 Syn
Seq=3625768554 Len=0 Win=49640 Options=<mss 1460,nop,nop,sackOK>
2 0.00005 OracleDB -> Client TCP D=33173 S=1521 Syn
Ack=3625768555 Seq=3119741333 Len=0 Win=24820
Options=<nop,nop,sackOK,mss 1460>
3 0.00059 Client -> OracleDB TCP D=1521 S=33173
Ack=3119741334 Seq=3625768555 Len=0 Win=49640
4 0.06130 Client -> OracleDB TCP D=1521 S=33173
Ack=3119741334 Seq=3625768555 Len=160 Win=49640
5 0.00040 OracleDB -> Client TCP D=33173 S=1521
Ack=3625768715 Seq=3119741334 Len=0 Win=24820
6 0.00083 OracleDB -> Client TCP D=33173 S=1521
Ack=3625768715 Seq=3119741334 Len=60 Win=24820
7 0.00019 OracleDB -> Client TCP D=33173 S=1521 Fin
Ack=3625768715 Seq=3119741394 Len=0 Win=24820
8 0.00036 Client -> OracleDB TCP D=1521 S=33173
Ack=3119741394 Seq=3625768715 Len=0 Win=49640
9 0.00010 Client -> OracleDB TCP D=1521 S=33173
Ack=3119741395 Seq=3625768715 Len=0 Win=49640
10 0.00036 Client -> OracleDB TCP D=1521 S=33173 Fin
Ack=3119741395 Seq=3625768715 Len=0 Win=49640
11 0.00003 OracleDB -> Client TCP D=33173 S=1521
Ack=3625768716 Seq=3119741395 Len=0 Win=24820
12 0.00702 Client -> OracleDB TCP D=39303 S=33174 Syn
Seq=1888174988 Len=0 Win=49640 Options=<mss 1460,nop,nop,sackOK>
13 0.00002 OracleDB -> Client TCP D=33174 S=39303 Syn
Ack=1888174989 Seq=3119845887 Len=0 Win=24820
Options=<nop,nop,sackOK,mss 1460>
14 0.00045 Client -> OracleDB TCP D=39303 S=33174
Ack=3119845888 Seq=1888174989 Len=0 Win=49640
15 0.00028 Client -> OracleDB TCP D=39303 S=33174
Ack=3119845888 Seq=1888174989 Len=160 Win=49640
16 0.00002 OracleDB -> Client TCP D=33174 S=39303
Ack=1888175149 Seq=3119845888 Len=0 Win=24660
17 0.00093 OracleDB -> Client TCP D=33174 S=39303 Fin
Ack=1888175149 Seq=3119845888 Len=0 Win=24820
18 0.00047 Client -> OracleDB TCP D=39303 S=33174
Ack=3119845889 Seq=1888175149 Len=0 Win=49640
19 0.12558 Client -> OracleDB TCP D=39303 S=33174 Fin
Ack=3119845889 Seq=1888175149 Len=0 Win=49640
20 0.00023 OracleDB -> Client TCP D=33174 S=39303
Ack=1888175150 Seq=3119845889 Len=0 Win=24820
listener.log (with bogus IP inserted):
13-JUN-2003 17:23:56 *
(CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) *
(ADDRESS=(PROTOCOL=tcp)(HOST=172.2.275.8)(PORT=33160)) * establish *
orcl * 0
13-JUN-2003 17:23:59 *
(CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) *
(ADDRESS=(PROTOCOL=tcp)(HOST=172.2.275.8)(PORT=33163)) * establish *
orcl * 0
13-JUN-2003 17:24:01 *
(CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) *
(ADDRESS=(PROTOCOL=tcp)(HOST=172.2.275.8)(PORT=33166)) * establish *
orcl * 0
13-JUN-2003 17:24:04 * service_register * orcl * 0
13-JUN-2003 17:24:04 *
(CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) *
(ADDRESS=(PROTOCOL=tcp)(HOST=172.2.275.8)(PORT=33169)) * establish *
pr05 * 0
Each entry from "HOST jdbc" is the Jdbctest program running. After the "service_request" entry, the program fails, but still enters what looks like a good log message.
Java stack trace:
Connecting with:
jdbc:oracle:thin:@OracleDB:1521:orcl
java.sql.SQLException: Io exception: Got minus one from a read call
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:334) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:418) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:521) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:325) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at Jdbctest.main(Jdbctest.java:52)
SQLState: null
Message: Io exception: Got minus one from a read call
Error Code: 17002
Received on Fri Jun 13 2003 - 19:48:22 CDT