前一段時間朋友用hibernate+mysql整了一個應用,出現tomcat放一夜,mysql連接出現錯誤的情況,具體的錯誤信息忘記了。
在網上查找一下,找到了這個帖子,還有就是這個了;原來Mysql在經過8小時不使用后會自動關閉已打開的連接,摘錄原文如下:
現把具體方法貼出來,以供大家共享.
方法一:
設置你的MYSQL數據庫:wait_timeout=24*60*60<秒>,把它的值設置大一點,呵呵
方法二:
配置Hibernate C3p0連接池,配置如下:
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="c3p0.max_size">20</property>
<property name="c3p0.min_size">5</property>
<property name="c3p0.timeout">20</property>
<property name="c3p0.max_statements">100</property>
<property name="c3p0.idle_test_period">120</property>
<property name="c3p0.acquire_increment">2</property>
注意這里標紅的部分,要設置c3p0.timeout的值小于MySql的wait_timeout的值,這樣才行,要不還會出現異常.
這次是一個教訓,所以不論從穩定還是性能的考慮,都應該選擇相對更加成熟的連接池。