fc2ブログ

MySql 「Communications link failure」 の調査結果

このエラーですが、、

org.springframework.transaction.CannotCreateTransactionException: Could
not open JDBC Connection for transaction; nested exception is
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 28,777,888 milliseconds ago. The last packet sent successfully to the server was 7 milliseconds ago.

原因はMySqlによるコネクションのタイムアウトっぽいことが判明・・・

MySqlはデフォルトだと8時間でコネクションが切れるようで
コネクションをプールしていても、8時間未使用だと切断されるみたい、、

そこで対策として以下を設定することにした

maxActive = X

minIdle = X

maxIdle = X

numTestsPerEvictionRun = X
 → 1回の監視処理でチェックするアイドル接続数の最大値を指定
   デフォルト値は3

timeBetweenEvictionRunsMillis
 → プール内のアイドル接続の監視スレッドを開始
   ミリ秒指定

validationQuery= selec 1
 → 接続が有効であることを確認するためのSQL文を記述します。

testOnBorrow= false
 → プールから取得する際に接続の有効性を確認
   デフォルト「true」、validationQueryが指定されてないと「false」で上書きされる
   使用する場合例外のハンドリングが必要

testWhileIdle= true
 → 監視処理時アイドル接続の有効性を確認
   デフォルト「false」


要はkeepAlive的なことをやりましたと、、

コメントの投稿

非公開コメント

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR