數據庫連接中斷-spring-springBoot


問題:據庫和應用在同一台機,數據庫用mysql5.6.20,已經升級druid到最新的1.0.7版本,訪問的是localhost的mysql,放一個晚上不訪問,第二天訪問就報錯了,重啟服務正常,錯誤提示:

[Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode] with root cause
java.net.SocketException: Software caused connection abort: socket write error
我按照druid的示例配置了最小連接數,以及檢測連接打開,但是沒用的?請問怎么看druid的保持連接池最小連接的檢測日志輸出???我看看有沒有檢測連接。

解決方案:首先更改mysql的wait_timeout是不好的。

用如下配置可以解決:


<property name="validationQuery" value="select 'x'" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="timeBetweenEvictionRunsMillis" value="600000" />
testWhileIdle:建議配置為true,不影響性能,並且保證安全性。申請連接的時候檢測,如果空閑時間大於
timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。
testOnBorrow:申請連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能。

testOnReturn:歸還連接時執行validationQuery檢測連接是否有效,做了這個配置會降低性能

 

參考:http://www.oschina.net/question/928524_165510

http://itindex.net/detail/50100-druid

springBoot數據庫連接池常用配置

參考: https://www.cnblogs.com/gslblog/p/7169481.html

包括: 驗證鏈接有效性等等


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM