0

私は現在、mysqlデータベースを広範囲に呼び出すJavaコードを実行しています。これらの呼び出しはデータベースを氾濫させており、コードを実行して数時間後、ネストされた例外が発生します。

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)

残念ながら、私はこの種の問題についてあまり経験がありませんが、すべてのクエリを確実に処理できるようにする方法を誰かが推奨できますか?

これは非常に幅広い質問であると理解できますが、クエリ自体は難しくありません。それは、私が要求しているクエリの数の規模です。

ありがとう

4

1 に答える 1

1

OS/MySql/Web サーバー レベルでこれをトラブルシューティングします。つまり、これは「Java」自体の問題ではありません。それはおそらく「システムパフォーマンス/システム構成」の問題です。

提案:

1) OS、Web サーバー/アプリケーション サーバーを指定していません。これらが重要です。

2) 基本的なパフォーマンス チェック (Linux の場合は ps -eaf および iostat、Windows の場合はタスク マネージャー/CPU/メモリ/ネットワーク統計) を実行します。"netstat" (Linux および Windows) に特に注意してください。

3) 関連するすべてのログを調べます (Linux の場合は /var/log/messages など、Windows の場合は EventVwr など)。

4) OS、DB、および Web サーバーの構成設定を確認します。

5) 可能性のある「古い接​​続」と DB 関連の「接続プール」パラメータに特に注意してください。

次のリンクを確認してください。

于 2012-08-26T03:38:21.140 に答える