次のようにクロールエラーは、ログからの情報をログ:
サーバーに正常に送信された最後のパケットが0ミリ秒前でした。ドライバは、サーバからのすべてのパケットを受信していません。
データベースアクセス、大量のがあるでしょうので、より早期のレポートを生成し、問題がおおよそデータベース接続プールです。
ソリューション:
(1)JDBC URLは自動再属性を使用使用して、URLを追加します
&自動再=真&failOverReadOnly = falseを
例如:
文字列のURL = "はjdbc:mysqlの:// localhostを:3306 / DevOpsチーム&自動再偽= =真&failOverReadOnly"。
(2)MySQLのパラメータを変更します。追加な/etc/my.cnf
[mysqldを]
WAIT_TIMEOUT = 31536000
は、interactive_timeout = 31536000
(3)再起動のMySQL
サービスMySQLの再起動
分析:
(1)利用可能な大量のデータを、MySQLの接続コネクタが失敗する可能性が
(2)長い接続が失敗し、頼むかもしれません
以下の抜粋は、どこか別の場所から来て、我々はそれから学ぶことができます
回収された場合には、バッファプールは、接続が再利用されるかどうかをテストするように構成することができ、DBCP例に使用され続けていません。
接続プールから取り出し、接続を検証するための#sqlクエリ、
dbcp.validationQuery = 1を選択します
#は、(もしあれば)テストが失敗した場合、試験され、接続がプールから除去され、接続がアイドルコレクタ接続であるかどうかを示し
dbcp.testWhileIdle =真
minEvictableIdleTimeMillisより典型的にはミリ秒単位で、アイドル運転中に眠りに#接続時間値コレクタ糸、
dbcp.timeBetweenEvictionRunsMillis = 300000
各コレクタのスレッドを接続する接続位数は、アイドル時間を(もしあれば)最良と一貫したMAXACTIVEを実行確認します
dbcp.numTestsPerEvictionRun = 50
#接続プール、ミリ秒単位で、接続プールの時間(* 1000年60 * 60)から取り外し、アイドル期間となっています
dbcp.minEvictableIdleTimeMillis = 3600000