报“ Got minus one from a read call”的错误
2017-12-14 10:12
549 查看
在部署应用的时候,有时候应用可以直接启动,但偶尔应用却无法启动,报错信息是:
java.sql.SQLRecoverableException: IO Error: Got minus one from a read call
一个应用连接数据库的时候是通过连接池的机制来连接的,数据库用一个参数max-session来描述连接池的大小,而应用同样也有一个参数,这个参数表示它连接数据库连接池所占用的最少资源,例如:总共有10个应用需要连接数据库,如果每个应用连接数据库的最小连接数为10,那么10个应用总共会有100个连接(可以看做是线程数),这样就要求数据库连接池的max-session必须大于100,否则就会报“
Got minus one from a read call”的错误。
因此,有两种方法可以解决这个问题:
(1)扩大数据库连接池,这个需要系统数据库管理员来协助完成
(2)减小应用连接数据库时需要的初始化连接数
我的这个应用是java应用,关于数据库的设置在配置文件jdbc.properties里面,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
其中
1
就是一个应用连接数据库的初始化参数,只要将之调小即可解决问题。
java.sql.SQLRecoverableException: IO Error: Got minus one from a read call
原因及解决方法
我有好几个应用系统需要连接数据库,测试发现如果这个应用在最开始启动就不会报错,如果是启动了好几个应用之后再启动的话就会报错了。一个应用连接数据库的时候是通过连接池的机制来连接的,数据库用一个参数max-session来描述连接池的大小,而应用同样也有一个参数,这个参数表示它连接数据库连接池所占用的最少资源,例如:总共有10个应用需要连接数据库,如果每个应用连接数据库的最小连接数为10,那么10个应用总共会有100个连接(可以看做是线程数),这样就要求数据库连接池的max-session必须大于100,否则就会报“
Got minus one from a read call”的错误。
因此,有两种方法可以解决这个问题:
(1)扩大数据库连接池,这个需要系统数据库管理员来协助完成
(2)减小应用连接数据库时需要的初始化连接数
我的这个应用是java应用,关于数据库的设置在配置文件jdbc.properties里面,内容如下:
jdbc.driverClass=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@nantianpaydb.baidupay.com:8002:ntpzn jdbc.user=cif jdbc.password=cif #druid datasource druid.initialSize=10 druid.minIdle=10 druid.maxIdle=100 druid.maxActive=500 druid.maxWait=30000 druid.timeBetweenEvictionRunsMillis=60000 druid.minEvictableIdleTimeMillis=300000 druid.validationQuery=SELECT 1 from dual druid.testWhileIdle=true druid.testOnBorrow=false druid.testOnReturn=false druid.poolPreparedStatements=true druid.maxPoolPreparedStatementPerConnectionSize=20 druid.filters=wall,stat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
其中
druid.initialSize=10
1
就是一个应用连接数据库的初始化参数,只要将之调小即可解决问题。
相关文章推荐
- 报错解决:java.sql.SQLRecoverableException:IO 错误:Got minus one from a read call
- IO 错误: Got minus one from a read call
- Got minus one from a read call异常
- Got minus one from a read call的解决方法
- NC57访问报错:java.sql.SQLException: Io 异常: Got minus one from a read call
- java.sql.SQLException: Io 异常: Got minus one from a read call
- java.sql.SQLException: Io exception:Got minus one from a read call
- Got minus one from a read call的解决方法
- java.sql.SQLException: Io 异常: Got minus one from a read call
- java.sql.SQLException: Io 异常: Got minus one from a read call
- oracle之 Got minus one from a read call 与 ORA-27154: post/wait create failed
- Io 异常: Got minus one from a read call
- oracle之 Got minus one from a read call 与 ORA-27154: post/wait create failed
- Got minus one from a read call的解决方法
- Io 异常: Got minus one from a read call
- Caused by: java.sql.SQLException: Io 异常: Got minus one from a read call
- Io 异常: Got minus one from a read call
- Got minus one from a read call异常
- Got minus one from a read call异常
- java.sql.SQLRecoverableException: IO Error: Got minus one from a read call