用JSP開發(fā)的網(wǎng)站,一般超過一天不訪問的話,數(shù)據(jù)庫連接就會斷開。從網(wǎng)上查找的解決辦法如下:
如 果連接閑置8小時 (8小時內(nèi)沒有進行數(shù)據(jù)庫操作), mysql就會自動斷開連接, 要重啟tomcat.
不用hibernate 的話, connection url加參數(shù): autoReconnect=true
用hibernate的話, 加如下屬性:
<property name="connection.autoReconnect">true</property>
<property name="connection.autoReconnectForPools">true</property>
<property name="connection.is-connection-validation-required">true</property>
要是還用c3p0連接池:
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.idle_test_period">0</property>
<property name="hibernate.c3p0.timeout">0</property>
<property name="hibernate.c3p0.validate">true</property>
不過,經(jīng)過測試,沒有效果。正在努力思考中...
經(jīng)過測試,增加 autoReconnect不管用,url中不認識該關(guān)鍵字。有網(wǎng)上評論說對mySQL5.0以上該參數(shù)不靈。
第二種:Hibernate的配置 也不好用。
經(jīng)測試,第三種方式是可行的。不過,參數(shù)配置不同。具體配置如下:
<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數(shù)據(jù)庫的wait-timeout設(shè)置為10.也就是說,只要10秒鐘不操作,數(shù)據(jù)連接就自動斷開。
測試結(jié)果,網(wǎng)頁 在等待若干分鐘后,也能正常操作。
如 果連接閑置8小時 (8小時內(nèi)沒有進行數(shù)據(jù)庫操作), mysql就會自動斷開連接, 要重啟tomcat.
不用hibernate 的話, connection url加參數(shù): autoReconnect=true
用hibernate的話, 加如下屬性:
<property name="connection.autoReconnect">true</property>
<property name="connection.autoReconnectForPools">true</property>
<property name="connection.is-connection-validation-required">true</property>
要是還用c3p0連接池:
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.idle_test_period">0</property>
<property name="hibernate.c3p0.timeout">0</property>
<property name="hibernate.c3p0.validate">true</property>
不過,經(jīng)過測試,沒有效果。正在努力思考中...
經(jīng)過測試,增加 autoReconnect不管用,url中不認識該關(guān)鍵字。有網(wǎng)上評論說對mySQL5.0以上該參數(shù)不靈。
第二種:Hibernate的配置 也不好用。
經(jīng)測試,第三種方式是可行的。不過,參數(shù)配置不同。具體配置如下:
<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數(shù)據(jù)庫的wait-timeout設(shè)置為10.也就是說,只要10秒鐘不操作,數(shù)據(jù)連接就自動斷開。
測試結(jié)果,網(wǎng)頁 在等待若干分鐘后,也能正常操作。