java.sql.SQLException: Io 异常: Got minus one from a read call

博客分类:

Tomcat服务器下的应用连接Oracle时报错,出现以下异常:

java.sql.SQLException: Io 异常: Got minus one from a read call

查询数据库连接情况:

Java代码  

  1. SQL> select username,count(username) from v$session where username is not null group by username;
  2. USERNAME                       COUNT(USERNAME)
  3. ------------------------------ ---------------
  4. SP2                                         33
  5. YWTWEBDB                                    14
  6. SYS                                          2
  7. INFO                                         1
  8. MF                                         658
  9. UC                                         183
  10. 6 rows selected.

Java代码  

  1. SQL> select count(*) from v$session where status=‘ACTIVE‘;
  2. COUNT(*)
  3. ----------
  4. 675

原因不明:表现是数据库的连接数比较大,临时处理是重启数据库,重启后解决,但估计不是最终的解决方法。。重启后的连接情况:

Java代码  

  1. 正常的时候的数据库连接数:
  2. SQL> select username,count(username) from V$SESSION where username is not null group by username ;
  3. USERNAME                       COUNT(USERNAME)
  4. ------------------------------ ---------------
  5. SP2                                         11
  6. YWTWEBDB                                     2
  7. SYS                                          1
  8. INFO                                         1
  9. MF                                          79
  10. MYJIN                                        1
  11. UC                                          19
  12. 7 rows selected.

以下收集了网上此问题的相关解决方法如下:

http://www.iteye.com/topic/1126453

http://blog.sina.com.cn/s/blog_529aacbd0100t22b.html

http://hi.baidu.com/xjieni/item/1afbff62dab025167cdecc21

摘录如下:

Java代码  

  1. 今日无意中用java连接oracle时,竟出现以下异常,甚是奇怪:
  2. Caused by: java.sql.SQLException: Io 异常: Got minus one from a read call
  3. at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
  4. at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
  5. at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
  6. at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
  7. at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
  8. at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) ....
  9. 问题在重新启动应用后,应用连接oracle时出错,无法启动应用。
  10. 最后重新启动oracle11g的服务,没有问题了,但是还没有找到具体原因。
  11. 后来在另外一台应用上也发现同样问题,发现问题的严重性,经过分析可能是驱动问题;在不重新启动oracle11g服务的情况下,替换最新版本的jdbc驱动包,问题解决;
  12. 出问题的ojdbc14.jar版本:(查看jar包的MANIFEST.MF文件)
  13. Manifest-Version: 1.0
  14. Specification-Title:    Oracle JDBC driver classes for use with JDK14
  15. Sealed: true
  16. Created-By: 1.4.2_08 (Sun Microsystems Inc.)
  17. Implementation-Title:   ojdbc14.jar
  18. Specification-Vendor:   Oracle Corporation
  19. Specification-Version:  Oracle JDBC Driver version - "10.2.0.1.0"
  20. Implementation-Version: Oracle JDBC Driver version - "10.2.0.1.0"
  21. Implementation-Vendor:  Oracle Corporation
  22. Implementation-Time:    Wed Jun 22 11:19:45 2005
  23. Name: oracle/sql/converter/
  24. Sealed: false
  25. Name: oracle/sql/
  26. Sealed: false
  27. Name: oracle/sql/converter_xcharset/
  28. Sealed: false
  29. 解决问题的ojdbc14.jar版本:
  30. Manifest-Version: 1.0
  31. Specification-Title:    Oracle JDBC driver classes for use with JDK14
  32. Sealed: true
  33. Created-By: 1.4.2_14 (Sun Microsystems Inc.)
  34. Implementation-Title:   ojdbc14.jar
  35. Specification-Vendor:   Oracle Corporation
  36. Specification-Version:  Oracle JDBC Driver version - "10.2.0.4.0"
  37. Implementation-Version: Oracle JDBC Driver version - "10.2.0.4.0"
  38. Implementation-Vendor:  Oracle Corporation
  39. Implementation-Time:    Sat Feb  2 11:40:29 2008
  40. Name: oracle/sql/converter/
  41. Sealed: false
  42. Name: oracle/sql/
  43. Sealed: false
  44. Name: oracle/sql/converter_xcharset/
  45. Sealed: false

Java代码  

  1. Caught: java.sql.SQLException: Io 异常: Got minus one from a read call
  2. 使用JDBC连接Oracle时,多次出现上述错误,后来去网上找了下,基本提供的方法有这么几种:
  3. 1:数据库连接满了,扩大数据库连接池
  4. 2:所登录的机子IP不在sqlnet.ora内,加入后重启listerner即可
  5. 3:数据库负载均衡时,指定了(SERVER=DEDICATED),去除这个即可
  6. 4:网管在Oracle配置上限制了该台机子访问Oracle的权限,这个问题基本和2类似,也是修改Oracle配置即可;
  7. 正在寻找解决办法,现在数据库不归我管,不能重启,扩大连接池治标不治本,而且数据库连接池是我自己写的,盲目的扩大会造成其他用户访问的多种问题,最好是能销毁之前创建的那些链接。哎,这就是代码不规范的坏处啊。创建Connection的时候一定不能忘了close,就算连接池也不要忘了returnConnection啊。

Java代码  

  1. 因为,数据库一直都是正常的,所以不可以是那些配置之类的错误。
  2. 后面DBA查了些东西后,给出结论说是,系统资源不够了。
  3. --查看系统资源
  4. SELECT   resource_name,
  5. current_utilization,
  6. max_utilization,
  7. LIMIT,
  8. ROUND (max_utilization / LIMIT * 100) || ‘%‘ rate
  9. FROM   (SELECT   resource_name,
  10. current_utilization,
  11. max_utilization,
  12. TO_NUMBER (initial_allocation) LIMIT
  13. FROM   v$resource_limit
  14. WHERE   resource_name IN (‘processes‘, ‘sessions‘)
  15. AND max_utilization > 0);
  16. RESOURCE_NAME                  CURRENT_UTILIZATION MAX_UTILIZATION      LIMIT RATE
  17. ------------------------------ ------------------- --------------- ---------- -----
  18. processes                                      312             500        500 100%
  19. sessions                                       317             509        555 92%
  20. 发现是资源不足。
  21. 处理方法是:
  22. alter system set processes=1000 scope=spfile;
  23. alter system set sessions=1110 scope=spfile; 然后重启数据库
  24. 只是,我重启之后值也都下降了,估计还有其他原因导致资源不足的吧。

原文地址:https://www.cnblogs.com/lcword/p/8228480.html

时间: 2024-08-09 17:34:01

java.sql.SQLException: Io 异常: Got minus one from a read call的相关文章

nested exception is java.sql.SQLException: IO 错误

1.错误描述 (mx.messaging.messages::ErrorMessage)#0 body = (null) clientId = "18CE3B03-9709-9DA8-7634-340C23317FDD" correlationId = "3161DF25-D056-D694-E5CF-963E4FE036D9" destination = "waitController" extendedData = (null) faultC

oracle之Io异常: Got minus one from a read call

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff } span.s1 { } 一.问题表象: java.sql.SQLException: Io 异常: Got minus one from a read call at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseErr

java.sql.SQLException: 关闭的连接 解决办法

程序如果长时间不进行数据库操作,那么数据源中的 Connection 很可能已经断开.其原因有可能是防火墙,或者连接的数据库设置的超时时间.这里使用的是 C3P0 连接 oracle 数据库,引起的异常信息为: org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.Transac

java连接oracle数据库,关闭连接出现异常:java.sql.SQLRecoverableException: IO Error: Connection reset

java.sql.SQLRecoverableException: IO Error: Connection reset at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:612) at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:5094) at com.sms.send.StartTaskNew.run(SmsSend.java

Hibernate卡住,然后报错java.sql.SQLException: Unknown system variable &#39;language&#39;异常

启动应用的时候会卡在: 08:22:58,221 DEBUG IntegratorServiceImpl:46 - Adding Integrator [org.hibernate.cfg.beanvalidation.BeanValidationIntegrator]. 08:22:58,226 DEBUG IntegratorServiceImpl:46 - Adding Integrator [org.hibernate.secure.spi.JaccIntegrator]. 08:22:

CDH5..4.7+phoenix实现查询HBase异常:java.sql.SQLException: ERROR 1102 (XCL02): Cannot get all table regions

基础环境是用CM 安装的cdh5.4.7,phoenix使用的版本是phoenix-4.5.2-HBase-1.0-bin. 出现异常信息:java.sql.SQLException: ERROR 1102 (XCL02): Cannot get all table regions 下载地址:http://mirror.bit.edu.cn/apache/phoenix/phoenix-4.5.2-HBase-1.0/bin/phoenix-4.5.2-HBase-1.0-bin.tar.gz

java.sql.SQLException: Column &#39;class&#39; not found.异常没有找到列

1 /**处理当个对象的 ,rs中要么有一条,要么一条没有. 2 * @param <T> 3 */ 4 public class BeanHandler<T> implements ResultSetHandler<T> { 5 private Class<T> type; 6 public BeanHandler(Class<T> type){ 7 this.type = type; 8 } 9 /**将rs->T t 10 */ 11

今天线上系统碰到个怪问题DBCP数据连接异常,java.sql.SQLException: Already closed.

java.sql.SQLException: Already closed. at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:84) ~[commons-dbcp-1.2.2.jar:1.2.2] at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.jav

表情存储异常--mybatis抛出异常(java.sql.SQLException: Incorrect string value: &#39;\xF0\x9F\x92\x94&#39; for column &#39;name&#39; at row 1)

文章参考 https://blog.csdn.net/junsure2012/article/details/42171035 https://www.cnblogs.com/WangYunShuaiBaoLe/p/9055215.html https://www.jb51.net/article/112879.htm 背景 iOS端测试时发现,在备注一栏输出emoji表情,保存时出现系统异常 java项目架构 spring-boot+mybatis+德鲁伊连接池 现象 抛出  java.sql