无法从服务器获得响应,什么是java.io.EOFException的,消息:无法从服务器读取响应。 预期读4个字节,...

这个问题已经被问了几次,在其他网站,所以和很多次。 但我没有得到任何令人满意的答案。

我的问题:

我有一个使用简单的JDBC通过GlassFish应用服务器连接到MySQL数据库Java Web应用程序。

我已经使用在以下配置GlassFish服务器连接池:

初始池大小:25

最大池大小:100

池调整大小数量:2

空闲超时300秒

最长等待时间:60,000毫秒

该应用程序已经部署了近3个月,它也完美运行。

但是,从最近2天以下的错误是在登录的时候到来。

部分堆栈跟踪

com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:

** BEGIN NESTED EXCEPTION **

com.mysql.jdbc.CommunicationsException

MESSAGE: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.io.EOFException

MESSAGE: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

STACKTRACE:

java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1997)

at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2411)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2916)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)

at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313)

at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1448)

............

............

my application traces....

什么顿时引起这个错误? 我已经失去了很多的时间讨论这个。

编辑:这个问题甚至重新启动服务器后仍然存在。 按DBA两个重要的MySQL服务器的配置是:

WAIT_TIMEOUT:1800秒

connect_timeout:10秒

注:部署在同一台服务器的其他应用程序连接到同一个数据库,并使用不同的池平稳运行。

EDIT 2:读了很多东西,并期望我做了这些改变我的连接池中的某些积极成果之后。

最大等待时间:0(以前是60秒)

连接验证:必填

验证方法:表

表名:演示

验证Atmost一旦:40秒

创建重试次数:1

重试间隔:5秒

最大连接用法:5

而这个工作作为应用程序运行3天持续。 但我得到的这份非常奇怪和有趣的结果。 当监控连接池,我发现这些数字:

NumConnAcquired:44919计数

NumConnReleased:44919计数

NumConnCreated:9748计数

NumConnDestroyed:9793计数

NumConnFailedValidation:70伯爵

NumConnFree:161计数

NumConnUsed:-136计数

该如何才能NumConnFree成为161,因为我有Maximum Pool Size = 100 ?

该如何才能NumConnUsed变成-136, 负数 ?

如何才能NumConnDestroyed > NumConnCreated ?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值