解決MySql8小時自動斷開連接問題。

mysql在啓動後,如果一段時間內沒有活動,那麼將自動關閉該連接。這段時間,默認爲8小時。在spring+hibernate中解決該問題,應該使用proxool這個連接池來代替DBCP的連接池。因爲DBCP連接池沒有自動重連功能。修改applicationContext.xml:
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close">
         <property name="driver">
             <value>com.mysql.jdbc.Driver</value>
         </property>
         <property name="driverUrl">
             <value>jdbc:mysql://host:3306/dbname?user=root&password=pass</value>
         </property>
         <property name="user">
             <value>root</value>
         </property>
         <property name="password">             <value>pass</value>
         </property>
         <property name="alias">
             <value>mysql</value>
         </property>
         <property name="prototypeCount">
             <value>5</value>
         </property>
         <property name="maximumConnectionCount">
             <value>100</value>
         </property>
         <property name="minimumConnectionCount">
             <value>2</value>
         </property> 
         <property name="houseKeepingTestSql"> 
             <value>SELECT CURRENT_DATE</value> 
          </property>            
         <property name="testBeforeUse">
             <value>true</value>
         </property>
         <property name="testAfterUse">
             <value>true</value>
         </property>
         <property name="trace">
             <value>true</value>
         </property>
    </bean>
 
在上面的代碼中,
<property name="testBeforeUse">
     <value>true</value>
</property>
用來指定在使用連接之前要進行測試。
 
<property name="houseKeepingTestSql">
    <value>SELECT CURRENT_DATE</value>
</property>
用來指定測試連接所使用的SQL語句。
如果測試發現連接已經close,那麼將自動重建連接。
 
然後從[url]http://proxool.sourceforge.net/download.html[/url]下載proxool的ZIP包。本地解壓之後,拷貝proxool-version.jar和proxool-cglib.jar到/WEB-INF/lib下即可。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章