一.原因
mysql 配置文件中interactive_timeout與wait_timeout的默認值爲28800(8*60*60)
二.處理
(1).dbcp數據源
在項目配置文件中增加
<!-- 驗證數據庫連接的查詢語句 -->
<property name="validationQuery" value="SELECT 1" />
<!--是否要進行檢測-->
<property name="testWhileIdle" value="true" />
<!--申請連接時執行validationQuery檢測連接是否有效-->
<property name="testOnBorrow" value="true" />
<!--歸還連接時執行validationQuery檢測連接是否有效-->
<property name="testOnReturn" value="true" />
(2).c3p0連接池
在項目配置文件中增加
<property name="maxIdleTime"value="1800"/>
三.測試
由原因可知,是mysql配置文件引起的。故測試時可以修改interactive_timeout與wait_timeout的值。將8小時改成較短的時間以方便測試。
修改值:
(1).可直接在my.cnf中修改兩個字段的值
(2).可在mysql軟件中通過查詢修改值
//顯示wait_timeout值
show global variables like 'wait_timeout';
//顯示interactive_timeout值
show global variables like 'interactive_timeout';
//設置wait_timeout值(設置爲3分鐘 3*60)
set global wait_timeout=180;
//設置wait_timeout值(設置爲3分鐘)
set global interactive_timeout=180;