至于為什么要用proxool連接池,這里就不細(xì)說了——總之,非常棒的一個(gè)連接池!
以下介紹proxool的部署和使用:
1、添加proxool-0.8.3.jar包。
2、把proxool-conf.xml放到src的根目錄。
具體內(nèi)容如下:
<?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.
請不要隨意改動(dòng)配置!
-->
<something-else-entirely>
<proxool>
<alias>pro_pool</alias>
<!--proxool只能管理由自己產(chǎn)生的連接-->
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-url>jdbc:oracle:thin:@IP地址:數(shù)據(jù)庫實(shí)例名</driver-url>
<driver-properties>
<property name="user" value="具體用戶名" />
<property name="password"
value="具體密碼" />
</driver-properties>
--><!-- proxool自動(dòng)偵察各個(gè)連接狀態(tài)的時(shí)間間隔(毫秒),偵察到空閑的連接就馬上回收,超時(shí)的銷毀-->
<house-keeping-sleep-time>60000</house-keeping-sleep-time>
<!-- 指因未有空閑連接可以分配而在隊(duì)列中等候的最大請求數(shù),超過這個(gè)請求數(shù)的用戶連接就不會(huì)被接受-->
<maximum-new-connections>20</maximum-new-connections>
<!-- 線程最大壽命
-->
<maximum-connection-lifetime>1200000</maximum-connection-lifetime>
<!--
最少保持的空閑連接數(shù)-->
<prototype-count>3</prototype-count>
<!--
允許最大連接數(shù),超過了這個(gè)連接,再有請求時(shí),就排在隊(duì)列中等候,最大的等待請求數(shù)由maximum-new-connections決定-->
<maximum-connection-count>40</maximum-connection-count>
<!-- 最小連接數(shù)-->
<minimum-connection-count>3</minimum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE from
dual</house-keeping-test-sql>
</proxool>
</something-else-entirely>
3、在web.xml中添加以下代碼,使得項(xiàng)目啟動(dòng)時(shí),自動(dòng)加載proxool。
<servlet>
<servlet-name>AdminP</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.admin.servlet.AdminServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AdminP</servlet-name>
<url-pattern>/AdminP</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>proxoolServletConfigurator</servlet-name>
<servlet-class>
org.logicalcobwebs.proxool.configuration.ServletConfigurator
</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/classes/proxool-conf.xml</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
4、程序調(diào)用(三種方式)
根據(jù)自己項(xiàng)目情況,采用以下三種方式中的任何一種即可。
1)、Spring框架調(diào)用。
在applicationContext.xml文件中:
<bean
id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
destroy-method="close"
singleton="true">
<property
name="driverClassName">
<value>org.logicalcobwebs.proxool.ProxoolDriver</value>
</property>
<property
name="url">
<value>proxool.pro_pool</value>
</property>
</bean>
2)、純JDBC調(diào)用
driver =
(Driver)Class.forName("org.logicalcobwebs.proxool.ProxoolDriver").newInstance();
DriverManager.registerDriver(driver);
conn
= DriverManager.getConnection("proxool.pro_pool");
3)、Hibernate調(diào)用
在hibernate.cfg.xml中增加:
<property
name="hibernate.proxool.pool_alias">pro_pool</property>
<property
name="hibernate.proxool.xml">proxool-conf.xml</property>
<property
name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
程序中使用
Connection con = DriverManager.getConnection("proxool.pro_pool");