我在尝试连接到本地(同一台计算机)数据库时遇到错误“oracle.net.ns.NetException:从读取调用中得到减一”。
这是代码
OracleDataSource ods = new OracleDataSource();
String jdbcURL = "jdbc:oracle:thin:username/userpass@mylinux:1522:sid";
ods.setURL(jdbcURL);
Connection conn = ods.getConnection();
Caused by: oracle.net.ns.NetException: Got minus one from a read call
at oracle.net.ns.Packet.receive(Packet.java:286)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:287)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1054)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308)
... 8 more
我在这里想念什么?我在网上的简短搜索没有发现任何有用的信息。我将 ojdbc6.jar 与测试应用程序相关联。
我可以使用上述凭据从 sqlplus 很好地连接。
更新 1:我得到以下异常堆栈跟踪
线程“主”java.sql.SQLRecoverableException 中的异常:IO 错误:从 oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection) 的 oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419) 的读取调用中得到减.java:536) 在 oracle.jdbc.driver.T4CConnection.(T4CConnection.java:228) 在 oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 在 oracle.jdbc.driver.OracleDriver.connect(OracleDriver .java:521) 在 oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:280) 在 oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:207) 在 oracle.jdbc.pool.OracleDataSource.getConnection( OracleDataSource.java:157) 在 TestOraConn.main(TestOraConn.java:17) 引起:oracle.net.ns.NetException:在 oracle.jdbc.driver.T4CConnection 的 oracle.net.ns.NSProtocol.connect(NSProtocol.java:287) 的 oracle.net.ns.Packet.receive(Packet.java:286) 的读取调用中得到了减一。在 oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308) 上连接(T4CConnection.java:1054) ... 还有 8 个
更新 2:
lsnrctl status
LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 28-MAY-2013 22:34:16
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused