java.sql.SQLException: Io 异常: Got minus one from a read call
Tomcat服务器下的应用连接Oracle时报错,出现以下异常:
java.sql.SQLException: Io 异常: Got minus one from a read call
查询数据库连接情况:
- SQL> select username,count(username) from v$session where username is not null group by username;
- USERNAME COUNT(USERNAME)
- ------------------------------ ---------------
- SP2 33
- YWTWEBDB 14
- SYS 2
- INFO 1
- MF 658
- UC 183
- 6 rows selected.
- SQL> select count(*) from v$session where status='ACTIVE';
- COUNT(*)
- ----------
- 675
原因不明:表现是数据库的连接数比较大,临时处理是重启数据库,重启后解决,但估计不是最终的解决方法。。重启后的连接情况:
- 正常的时候的数据库连接数:
- SQL> select username,count(username) from V$SESSION where username is not null group by username ;
- USERNAME COUNT(USERNAME)
- ------------------------------ ---------------
- SP2 11
- YWTWEBDB 2
- SYS 1
- INFO 1
- MF 79
- MYJIN 1
- UC 19
- 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连接oracle时,竟出现以下异常,甚是奇怪:
- Caused by: java.sql.SQLException: Io 异常: 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:333)
- at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
- at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
- at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) ....
- 问题在重新启动应用后,应用连接oracle时出错,无法启动应用。
- 最后重新启动oracle11g的服务,没有问题了,但是还没有找到具体原因。
- 后来在另外一台应用上也发现同样问题,发现问题的严重性,经过分析可能是驱动问题;在不重新启动oracle11g服务的情况下,替换最新版本的jdbc驱动包,问题解决;
- 出问题的ojdbc14.jar版本:(查看jar包的MANIFEST.MF文件)
- Manifest-Version: 1.0
- Specification-Title: Oracle JDBC driver classes for use with JDK14
- Sealed: true
- Created-By: 1.4.2_08 (Sun Microsystems Inc.)
- Implementation-Title: ojdbc14.jar
- Specification-Vendor: Oracle Corporation
- Specification-Version: Oracle JDBC Driver version - "10.2.0.1.0"
- Implementation-Version: Oracle JDBC Driver version - "10.2.0.1.0"
- Implementation-Vendor: Oracle Corporation
- Implementation-Time: Wed Jun 22 11:19:45 2005
- Name: oracle/sql/converter/
- Sealed: false
- Name: oracle/sql/
- Sealed: false
- Name: oracle/sql/converter_xcharset/
- Sealed: false
- 解决问题的ojdbc14.jar版本:
- Manifest-Version: 1.0
- Specification-Title: Oracle JDBC driver classes for use with JDK14
- Sealed: true
- Created-By: 1.4.2_14 (Sun Microsystems Inc.)
- Implementation-Title: ojdbc14.jar
- Specification-Vendor: Oracle Corporation
- Specification-Version: Oracle JDBC Driver version - "10.2.0.4.0"
- Implementation-Version: Oracle JDBC Driver version - "10.2.0.4.0"
- Implementation-Vendor: Oracle Corporation
- Implementation-Time: Sat Feb 2 11:40:29 2008
- Name: oracle/sql/converter/
- Sealed: false
- Name: oracle/sql/
- Sealed: false
- Name: oracle/sql/converter_xcharset/
- Sealed: false
- Caught: java.sql.SQLException: Io 异常: Got minus one from a read call
- 使用JDBC连接Oracle时,多次出现上述错误,后来去网上找了下,基本提供的方法有这么几种:
- 1:数据库连接满了,扩大数据库连接池
- 2:所登录的机子IP不在sqlnet.ora内,加入后重启listerner即可
- 3:数据库负载均衡时,指定了(SERVER=DEDICATED),去除这个即可
- 4:网管在Oracle配置上限制了该台机子访问Oracle的权限,这个问题基本和2类似,也是修改Oracle配置即可;
- 正在寻找解决办法,现在数据库不归我管,不能重启,扩大连接池治标不治本,而且数据库连接池是我自己写的,盲目的扩大会造成其他用户访问的多种问题,最好是能销毁之前创建的那些链接。哎,这就是代码不规范的坏处啊。创建Connection的时候一定不能忘了close,就算连接池也不要忘了returnConnection啊。
- 因为,数据库一直都是正常的,所以不可以是那些配置之类的错误。
- 后面DBA查了些东西后,给出结论说是,系统资源不够了。
- --查看系统资源
- SELECT resource_name,
- current_utilization,
- max_utilization,
- LIMIT,
- ROUND (max_utilization / LIMIT * 100) || '%' rate
- FROM (SELECT resource_name,
- current_utilization,
- max_utilization,
- TO_NUMBER (initial_allocation) LIMIT
- FROM v$resource_limit
- WHERE resource_name IN ('processes', 'sessions')
- AND max_utilization > 0);
- RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION LIMIT RATE
- ------------------------------ ------------------- --------------- ---------- -----
- processes 312 500 500 100%
- sessions 317 509 555 92%
- 发现是资源不足。
- 处理方法是:
- alter system set processes=1000 scope=spfile;
- alter system set sessions=1110 scope=spfile; 然后重启数据库
- 只是,我重启之后值也都下降了,估计还有其他原因导致资源不足的吧。
java.sql.SQLException: Io 异常: Got minus one from a read call的更多相关文章
- NC57访问报错:java.sql.SQLException: Io 异常: Got minus one from a read call
一.报错信息 1. 前端登录界面 2. 后台应用日志 报错信息一致为: $$callid= $$thread=[Service Monitor and Runtime Enroment] $$ho ...
- java.sql.SQLException: Io 异常: Connection reset
当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作时仍然使用的是无效的数据库连接,这样,就导致客户端程序报“ java.sql.SQLExc ...
- java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=186646784)(ERR=12505)(ERR
dbc 链接orcal出错 java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=186646784)( ...
- spring+ibatis问题1—— 程序报错:java.sql.SQLException: Io 异常: Connection reset by peer, socket write error; ”或“java.sql.SQLException 关闭的连接”异常
转自:http://blog.sina.com.cn/s/blog_1549fb0710102whz2.html spring+ibatis程序测试时报错:java.sql.SQLException: ...
- java.sql.SQLException: Io 异常: Invalid number format for port number
java.sql.SQLException: Io 异常: Invalid number format for port number jdbc数据库链接配置没有写端口号 要检查jdbc的配置 ...
- nested exception is java.sql.SQLException: IO 错误
1.错误描述 (mx.messaging.messages::ErrorMessage)#0 body = (null) clientId = "18CE3B03-9709-9DA8-763 ...
- java.sql.SQLException: 关闭的连接 解决办法
程序如果长时间不进行数据库操作,那么数据源中的 Connection 很可能已经断开.其原因有可能是防火墙,或者连接的数据库设置的超时时间.这里使用的是 C3P0 连接 oracle 数据库,引起的异 ...
- presto——java.sql.SQLException: Error executing query与javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?异常问题
使用presto的时候以mysql为presto的数据源 安装的presto是0.95版本:使用的presto-jdbc是0.202的,这里使用jdbc去访问时候,connection可以链接成功,但 ...
- HiveServer2 的jdbc方式创建udf的修改(add jar 最好不要使用),否则会造成异常: java.sql.SQLException: Error while processing statement: null
自从Hive0.13.0开始,使用HiveServer2 的jdbc方式创建udf的临时函数的方法由: ADD JAR ${HiveUDFJarPath} create TEMPORARY funct ...
随机推荐
- 遍历文档内容,得到HTML层级结构
嗯..没发现有写好的,那就自己写一个,刚好自己今天看了DOM操作的知识点,巩固一下. HTML可以表示为一个层次结构,生成的DOM Tree 就是类似与数据结构中的树一样,每个DOM节点都有它的chi ...
- hdu 2141 Can you find it?(二分查找)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2141 题目大意:查找是否又满足条件的x值. 这里简单介绍一个小算法,二分查找. /* x^2+6*x- ...
- Linux提权思路
先写个大概 0. dirtycow 不同的dirtycow有不同执行条件. 使用前先对照此表根据内核版本确认是否已经修复 https://github.com/dirtycow/dirtycow.gi ...
- linux基础——磁盘分区和yum安装
第一部分 1) 开启Linux系统前添加一块大小为15G的SCSI硬盘 2) 开启系统,右击桌面,打开终端 3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1 ...
- strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用。
strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用. http://bbs.51cto.com/thread-1106891-1.html
- Multi-Paxos协议日志同步应用
使用Multi-Paxos协议的日志同步与恢复 基于Basic-Paxos协议的日志同步方案, 所有成员的身份都是平等的, 任何成员都可以提出日志持久化的提案, 并且尝试在成员组中进行持久化. 而在实 ...
- swoole扩展安装
1Swoole扩展的编译安装 Swoole扩展是按照php标准扩展构建的.使用phpize来生成php编译配置,./configure来做编译配置检测,make和make install来完成安装. ...
- mysql常用函数示例
CREATE TABLE `orders` ( `OrderId` INT(10) NOT NULL AUTO_INCREMENT COMMENT '编号', `ProductName` VARCHA ...
- [ Openstack ] Openstack-Mitaka 高可用之 Dashboard
目录 Openstack-Mitaka 高可用之 概述 Openstack-Mitaka 高可用之 环境初始化 Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...
- window10下部署flask系统(apache和wsgi)
公司有一个小系统,通过url和其他系统进行数据交互(有点土). 因此,利用flask写了一个小程序. 现在,考虑到并发问题(flask自身是不会并发的),准备部署在apache+wsgi环境. 网上百 ...