六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Mysql中JDBC怎么完成自動重連機制的案例

[摘要]最近在工作中發現了一個問題,通過查找相關的資料終于解決了,下面這篇文章主要給大家介紹了關于JDBC實現Mysql自動重連機制的相關資料,文中給出多種解決的方法,需要的朋友可以參考借鑒,下面來一起看看...
最近在工作中發現了一個問題,通過查找相關的資料終于解決了,下面這篇文章主要給大家介紹了關于JDBC實現Mysql自動重連機制的相關資料,文中給出多種解決的方法,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

本文主要給大家介紹的是關于JDBC實現Mysql自動重連機制的相關內容,分享出來供大家參考學習,下面來一起看看詳細的介紹:

日志:using the Connector/J connection property 'autoReconnect=true' to avoid this problem


com.mysql.jdbc.CommunicationsException: The last packet successfully received from the server was58129 seconds ago.The last packet sent successfully to the server was 58129 seconds ago, which is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.

查了一下,原來是MySQL超時設置的問題

如果連接閑置8小時 (8小時內沒有進行數據庫操作), mysql就會自動斷開連接, 要重啟tomcat.

解決辦法:

第一種:如果不用hibernate的話, 則在 connection url中加參數: autoReconnect=true


 jdbc.url=jdbc:mysql://ipaddress:3306/database?autoReconnect=true&autoReconnectForPools=true

第二種:用hibernate的話, 加如下屬性:


 <property name="connection.autoReconnect">true</property>
 <property name="connection.autoReconnectForPools">true</property>
 <property name="connection.is-connection-validation-required">true</property>

第三種:要是還用c3p0連接池:


 <property name="hibernate.c3p0.acquire_increment">1</property> 
 <property name="hibernate.c3p0.idle_test_period">0</property> 
 <property name="hibernate.c3p0.timeout">0</property>
 <property name="hibernate.c3p0.validate">true</property>

第四種:最不好的解決方案

使用Connector/J連接MySQL數據庫,程序運行較長時間后就會報以下錯誤:

Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was *** millisecond ago。

其中錯誤還會提示你修改wait_timeout或是使用Connector/J的autoReconnect屬性避免該錯誤。

后來查了一些資料,才發現遇到這個問題的人還真不少,大部分都是使用連接池方式時才會出現這個問題,短連接應該很難出現這個問題。

這個問題的原因:

MySQL服務器默認的“wait_timeout”是28800秒即8小時,意味著如果一個連接的空閑時間超過8個小時,MySQL將自動斷開該 連接,而連接池卻認為該連接還是有效的(因為并未校驗連接的有效性),當應用申請使用該連接時,就會導致上面的報錯。

⑴.按照錯誤的提示,可以在JDBC URL中使用autoReconnect屬性,實際測試時使用了autoReconnect=true& failOverReadOnly=false,不過并未起作用,使用的是5.1版本,可能真像網上所說的只對4之前的版本有效。

⑵.沒辦法,只能修改MySQL的參數了,wait_timeout最大為31536000即1年,在my.cnf中加入:


[mysqld]

wait_timeout=31536000

interactive_timeout=31536000

重啟生效,需要同時修改這兩個參數。

總結

以上就是Mysql中JDBC如何實現自動重連機制的實例的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 日本无卡码一区二区三区 | 最近最新中文字幕免费的一页 | 亚洲免费二区 | 五月激情啪啪网 | 速度与激情9全集免费观看 速度与激情9免费完整版高清 | 五月一区二区久久综合天堂 | 日本在线精品 | 五月激情站 | 日韩在线 中文字幕 | 特级毛片黑人三人共一女 | 色婷婷六月丁香在线观看 | 亚洲精品福利你懂 | 色黄网| 日韩福利视频一区 | 日本免费在线视频 | 性生生活三级视频观看 | 特级黄一级播放 | 欧美做a一级视频免费观看 欧美坐爱视频 | 手机看片日韩日韩 | 青青青青草原国产免费 | 天天狠狠色综合图片区 | 五月婷婷丁香在线观看 | 日本在线观看永久免费网站 | 五级床片全部免费播放 | 一级做a爰片久久毛片 | 青青草视频在线免费观看 | 五月婷综合网 | 青春草在线观看 | 午夜影院在线看 | 午夜天堂影院 | 有码日韩| 亚洲欧美日韩国产色另类 | 亚洲欧美日韩国产 | 亚洲综合20p | 色美女影院 | 婷婷综合激情五月中文字幕 | 天使萌一区二区三区免费观看 | 青草免费| 欧美亚洲91 | 亚洲天堂2014 | 午夜夜 |