java代码大量使用mysql

时间:2012-08-26 03:02:23

标签: java mysql

我目前正在运行一些java代码,它会对mysql数据库进行大量调用。这些调用充斥着数据库,在代码运行几个小时后,我得到一个嵌套异常:

java.io.EOFException
    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1934)
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2380)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2909)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:798)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3700)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1203)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)


Last packet sent to the server was 8789 ms ago.
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2592)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2909)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:798)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3700)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1203)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)

不幸的是,我对这类问题没有太多经验,有人可以推荐一些方法来确保我的所有查询都能得到处理吗?

我可以理解这是一个非常广泛的问题,但查询本身并不困难,更多的是我要求的查询数量。

由于

1 个答案:

答案 0 :(得分:1)

我会在OS / MySql / Web服务器级别对此进行故障排除。换句话说,这本身并不是“Java”问题。它可能更像是“系统性能/系统配置”问题。

建议:

1)您尚未指定您的操作系统,Web服务器/应用程序服务器。这些是关键。

2)运行基本性能检查(适用于Linux的ps -eaf和iostat,适用于Windows的任务管理器/ CPU /内存/网络统计信息)。特别注意“netstat”(Linux和Windows)。

3)查看所有相关日志(Linux的/ var / log / messages等; Windows的EventVwr等)

4)检查您的操作系统,数据库和Web服务器配置设置。

5)特别注意可能的“陈旧连接”和与DB相关的“连接池”参数。

检查以下链接: