Mysql的wait_timeout

問題: mysql

ssh+mysql項目,數據源爲dbcp,隔夜後訪問會出現下列錯誤
sql

Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin failed:
...

緣由: shell

mysql存在一項屬性「wait_timeout」,默認值爲28800秒(8小時),
經過下面口令能夠查看 ssh

mysql> show global variables like 'wait_timeout';
其意思爲mysql的一個connection空閒時間超過8小時,mysql會自動斷開該鏈接。
因爲dbcp沒有檢驗該connection是否有效,因此用其進行數據操做便會出現異常。


解決方法: hibernate

修改dbcp配置: code

timeBetweenEvictionRunsMillis = 20000  
minEvictableIdleTimeMillis = 28700
「timeBetweenEvictionRunsMillis 」  dbcp每2000秒進行一次connection的檢驗, 「minEvictableIdleTimeMillis 」 每次檢驗中將超過28700秒處於空閒的connection斷開
相關文章
相關標籤/搜索