- 下載proxool,下載網址:http://proxool.sourceforge.net/
- 解壓縮後將其中 proxool-0.9.1.jar、proxool-cglib.jar 放入專案中WEB-INF/libs(依各專案設定)
- 於 hibernate.cfg.xml 同一層目錄下新增一XML檔 proxool.cfg.xml,檔案內容如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<!-- Connection Pool的別名,但需與hibernate部分對應-->
<alias>proxoolPool</alias>
<!-- 讓proxool只能管理自己產生的連結 -->
<driver-url>jdbc:mysql://localhost:3306/DBNAME</driver-url>
<driver-class> com.mysql.jdbc.Driver </driver-class>
<driver-properties>
<property name="user" value=""/>
<property name="password" value=""/>
</driver-properties>
<!-- proxool自動偵測各個連結狀態的時間間隔(毫秒),偵察到閒置的連結就即刻回收,超時的銷毀 (0.9.1版SOURCE為long所以建議不要設定,會以預設值為30秒作為銷毀時間)-->
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<!-- 指因未有閒置連結可以分配而在佇列中等候的最大連線數,超過這個連線數的用戶連線就不會被接受 -->
<maximum-new-connections>20</maximum-new-connections>
<!-- 最少保持的閒置連線數 -->
<prototype-count>5</prototype-count>
<!-- 允許最大連線數,超過了該連線數,再有請求時,就排在佇列中等候,最大的等待連線數由maximum-new-connections決定 -->
<maximum-connection-count>100</maximum-connection-count>
<!-- 最小連線數 -->
<minimum-connection-count>10</minimum-connection-count>
<!-- 對連線池的資料進行定時統計,1分鐘、五分鐘、一天分別作統計 -->
<statistics>1m,15m,1d</statistics>
</proxool>
</something-else-entirely>
- 修改 hibernate.cfg.xml 中設定
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- ProxoolConnection設定 -->
<property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
<!--這個名字要和Proxool.xml檔案中的別名要對應-->
<property name="hibernate.proxool.pool_alias">proxoolPool</property>
<!--對應上面建立的XML文件的名稱-->
<property name="hibernate.proxool.xml">proxool.cfg.xml</property>
<!-- 顯示實際操作資料庫時的SQL,上線時請改為false-->
<property name="show_sql">true</property>
<!-- 將顯示的SQL排版,方便觀看,上線時請改為false -->
<property name="format_sql">true</property>
<!-- SQL方言,這邊設定的是MySQL -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 對應資料庫設定文件 -->
<mapping resource="delta/manage/news/hbm/NewsModel.hbm.xml"/>
</session-factory>
</hibernate-configuration>
- proxool內建監控畫面設定,只需於 web.xml 中增加下列設定即可在 http://localhost:8080/專案名稱/pool 中看到監控畫面
<!--proxool-->
<servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Admin</servlet-name>
<url-pattern>/pool</url-pattern>
</servlet-mapping>
留言列表