TomcatJDBC Lib を使用して Tomcat 6 と MySQL
で実行している、このような厄介な問題に直面しています。
com.mysql.jdbc.CommunicationsException:
基礎となる例外による通信リンク障害:
** BEGIN NESTED EXCEPTION **
java.io.EOFException
STACKTRACE:
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.sendCommand(MysqlIO.java:1600)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3026)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1137)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1231)
しばらくすると (20 分)、これが発生し、db へのすべての接続が期限切れになるようです。
autoReconnect=true"
validationQuery="Select 1"
すべてが設定されています。
私はデータベースへの再接続を処理しますが、正常に動作しますが、巨大なログ ファイルは問題があります。この例外を処理してサイレントにすることもできません。また、このタイプの「修正」は正しい解決策ではありません。次の方法はありますか:
a) この例外をサイレントに処理する
b) この問題を修正する (私が知っているファイアウォールはありません) (mysql 構成のために my.cnf にアクセスできません)
また、接続をドロップする可能性のあるファイアウォールなしで、まったく異なるアプリケーションで Apache jConnector を使用する Tomcat 5 でもこの問題が発生します。
(接続を呼び出すメソッドで EOFException または CommunicationsException をキャッチしても、もちろん役に立ちません。)
前もって感謝します。