Posted on 2010-03-20 15:50
希望的石頭 閱讀(1583)
評論(0) 編輯 收藏
用JSP開發的網站,一般超過一天不訪問的話,數據庫連接就會斷開。從網上查找的解決辦法如下: WNn?l{k
rtS]p %YT
如
果連接閑置8小時 (8小時內沒有進行數據庫操作), mysql就會自動斷開連接, 要重啟tomcat. <_ 2cV
不用hibernate
的話, connection url加參數: autoReconnect=true S?ByJ$
用hibernate的話, 加如下屬性: .hcs)z
<property
name="connection.autoReconnect">true</property> >%J q]8
<property
name="connection.autoReconnectForPools">true</property> r 0; x
<property
name="connection.is-connection-validation-required">true</property> R2lq<1|!
要是還用c3p0連接池: }~QD|3vh
<property
name="hibernate.c3p0.acquire_increment">1</property> EV|1P/h
<property
name="hibernate.c3p0.idle_test_period">0</property> Lp#%~PGr~
<property
name="hibernate.c3p0.timeout">0</property> 88O +w
<property
name="hibernate.c3p0.validate">true</property>
不過,經過測試,沒有效果。正在努力思考中...
經過測試,增加
autoReconnect不管用,url中不認識該關鍵字。有網上評論說對mySQL5.0以上該參數不靈。
第二種:Hibernate的配置
也不好用。
經測試,第三種方式是可行的。不過,參數配置不同。具體配置如下:
<property
name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.timeout">5</property>
<property
name="hibernate.c3p0.idle_test_period">5</property>
<property
name="hibernate.c3p0.max_statements">100</property>
<property
name="hibernate.c3p0.acquire_increment">1</property>
為了具
體測試出效果,我將mySQL數據庫的wait-timeout設置為10.也就是說,只要10秒鐘不操作,數據連接就自動斷開。
測試結果,網頁
在等待若干分鐘后,也能正常操作。