Java CentOS linux 6上的oracle 11g r2:读取调用得到负1
尝试连接到本地同一计算机数据库oracle.net.ns.NetException时出错:从读取调用中得到负1 这是密码Java CentOS linux 6上的oracle 11g r2:读取调用得到负1,java,oracle,jdbc,connection,Java,Oracle,Jdbc,Connection,尝试连接到本地同一计算机数据库oracle.net.ns.NetException时出错:从读取调用中得到负1 这是密码 OracleDataSource ods = new OracleDataSource(); String jdbcURL = "jdbc:oracle:thin:username/userpass@mylinux:1522:sid"; ods.setURL(jdbcURL); Connection conn = ods.getConnecti
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错误:从读取调用中得到负1
位于oracle.jdbc.driver.T4CConnection.logonT4CConnection.java:419
位于oracle.jdbc.driver.PhysicalConnection.PhysicalConnection.java:536
位于oracle.jdbc.driver.T4CConnection.T4CConnection.java:228
位于oracle.jdbc.driver.T4CDriverExtension.getConnection4CDriverExtension.java:32
位于oracle.jdbc.driver.OracleDriver.connectOracleDriver.java:521
位于oracle.jdbc.pool.OracleDataSource.getPhysicalConnectionOracleDataSource.java:280
位于oracle.jdbc.pool.OracleDataSource.getConnectionOracleDataSource.java:207
位于oracle.jdbc.pool.OracleDataSource.getConnectionOracleDataSource.java:157
位于TestOraConn.main TestOraConn.java:17
原因:oracle.net.ns.NetException:从读取调用中得到负1
位于oracle.net.ns.Packet.receivePacket.java:286
位于oracle.net.ns.NSProtocol.connectNSProtocol.java:287
位于oracle.jdbc.driver.T4CConnection.connectT4CConnection.java:1054
位于oracle.jdbc.driver.T4CConnection.logonT4CConnection.java:308
... 8个以上
更新2:
您是从getConnection调用中获得异常,还是从以后使用该连接中获得异常?整个堆栈跟踪以及带有行号的相关代码都很有用。作为sid,您需要的是服务名称,但如果您正在使用与Easy Connect相同的SQLPlus格式,或者*仅使用该凭据,则这是正确的?。您也可以尝试而不是使用setURL来查看这是否缩小了问题的范围。添加了一个带有完整stacktrace的更新。仅在getConnection调用中出现异常。我尝试了设置属性提示。在oracle数据源上调用getConnection时也会出现相同的结果:-来自sqlplus和Java程序的连接来自同一主机?两者都使用相同的DNS名称=myhost?我打赌数据包离开主机,防火墙/有状态数据包过滤器/负载平衡器(两者之间的任何一个)会切断连接,这是从读取的-1指示的
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