java.sql.SQLException Error Code: 17002 and IO exception: Got minus one from a read call When Establishing Connection Using Oracle JDBC Driver 10.2.0.3 [ID 763837.1] | |||||
| |||||
修改时间 03-DEC-2010 类型 PROBLEM 状态 PUBLISHED |
In this Document
Symptoms
Cause
Solution
References
Applies to:
JDBC - Version: 10.2.0.3 and later [Release: 10.2 and later ]Information in this document applies to any platform.
Symptoms
Trying to establish a connection from DbVisualizer using JDBC Thin 10.2.0.3 and JDK 1.5 against anOracle Server 10.2.0.3 fails with:
An error occurred while establishing the connection.
Type: java.sql.SQLException Error Code: 17002
Message:
Io exception: Got minus one from a read call
The same error is obtained from other JDBC applications, not only DBVisualizer.
Listener.log shows the following errors:
26-JAN-2009 16:35:34 * (CONNECT_DATA=(SID=EPICDEV)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) *
(ADDRESS=(PROTO =tcp)(HOST=<ip>)(PORT=64367)) * establish * EPICDEV * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 32: Broken pipe
Cause
This issue was caused by database initialization parameter PROCESSES being set to a low value.Listener log gives the complete error stack and the database service name to which the client
tried to connect to:
26-JAN-2009 16:35:34 * (CONNECT_DATA=(SID=EPICDEV)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) *
(ADDRESS=(PROTO =tcp)(HOST=<ip>)(PORT=64367)) * establish * EPICDEV * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 32: Broken pipe
Listener log shows the bottom error being 32 is the OS error. It also shows that the JDBC client has tried to connect to the database service and failed with the error 12518.
The error 32 indicates the communication has been broken while the listener is trying to hand off
the client connection to the server process or dispatcher process.
Error 32 Broken Pipe is normally caused by PROCESSES parameter being set low, as documented in
Note <<550859.1>> - TROUBLESHOOTING GUIDE TNS-12518 TNS listener could not hand off client connection.
Solution
To implement the solution, please execute the following steps:- Increase PROCESSES parameter by either editing init.ora or spfile.
- Restart the database for the parameter value to take effect.