1. 程式人生 > >java資料庫連線池proxool介紹及mysql8小時斷開連線問題的說明

java資料庫連線池proxool介紹及mysql8小時斷開連線問題的說明

Proxool是一種Java資料庫連線池技術。是sourceforge下的一個開源專案,這個專案提供一個健壯、易用的連線池, 最為關鍵的是這個連線池提供監控的功能,方便易用,便於發現連線洩漏的情況。 目前是和DBCP以及C3P0一起,最為常見的三種JDBC連線池技術。 日前,Hibernate官方宣佈由於Bug太多不再支援DBCP,而推薦使用 Proxool或C3P0。 把proxool.jar和proxool-cglib.jar放入你要配置的專案的lib目錄 可以在proxool.xml 中配置,在web.xml中配置初始化servlet,在web容器載入的時候自動載入配置檔案,然後applicationContext.xml中進行關聯 如果是用的spring框架,在spring-config.xml中配置也可以。 在spring中的配置方法如下: beans 標籤下增加: <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
  <property name="alias" value="proxoolDataSource" />
  <property name="driver" value="com.mysql.jdbc.Driver" />
  <property name="driverUrl" value="jdbc:mysql://127.0.0.1:3306/databasename" />
  <property name="user" value="root" />
  <property name="password" value="root" />
  <property name="maximumConnectionCount" value="40" />
  <property name="minimumConnectionCount" value="5" />
 </bean> 在應用中實時監控連線池的配置web.xml <servlet> <servlet-name>adminProxool</servlet-name> <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>adminProxool</servlet-name> <url-pattern>/admin/proxool</url-pattern> </servlet-mapping> 另外,mysql5.0以後,會出現8小時後自動斷開連線的情況。因為我們使用了連線池的技術,這樣在web系統初始化的時候,會自動建立很多歌連線放到 連線池中,但是這些連線只有8小時不使用的話會自動回收和做廢,這樣這個時候使用該連線進行資料庫操作的時候,操作將無法執行。 解決方法如下: 在配置檔案中增加: <!-- 自動檢查連線是否斷掉開關 -->
<test-before-use>true</test-before-use>
<!-- 自動檢查連線是否斷的測試sql語句 -->
<house-keeping-test-sql>select now();
</house-keeping-test-sql>