1,下載與安裝
http://proxool.sourceforge.net/ 頁(yè)面下載jar文件,將路徑加入到project的buildpath里面
2,配置
在proxool主站的配置頁(yè)下,介紹了5種配置proxool連接池的方法,當(dāng)然目前最直接最方便和通用的無(wú)疑是強(qiáng)大的xml技術(shù),因此我們采用的就是利用xml配置文件進(jìn)行配置的方法。
下面是一段配置文件proxool.xml的示例(數(shù)據(jù)庫(kù)采用的是sqlserver):
1 <?xml version="1.0" encoding="UTF-8"?>
2 <something-else-entirely>
3 <proxool>
4 <alias>your_own_name</alias>
5 <driver-url>jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=database_name</driver-url>
6 <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
7 <driver-properties>
8 <property name="user" value="xxxxxx"/>
9 <property name="password" value="xxxxxx"/>
10 </driver-properties>
11 <maximum-connection-count>5</maximum-connection-count>
12 <minimum-connection-count>2</minimum-connection-count>
13 <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
14 </proxool>
15 <proxool>
16 <alias>xxxx</alias>
17 <driver-url>jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=another_database_name</driver-url>
18 <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
19 <driver-properties>
20 <property name="user" value="xxxxxx"/>
21 <property name="password" value="xxxxxx"/>
22 </driver-properties>
23 <maximum-connection-count>5</maximum-connection-count>
24 <minimum-connection-count>2</minimum-connection-count>
25 <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
26 </proxool>
27 </something-else-entirely>
28
2 <something-else-entirely>
3 <proxool>
4 <alias>your_own_name</alias>
5 <driver-url>jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=database_name</driver-url>
6 <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
7 <driver-properties>
8 <property name="user" value="xxxxxx"/>
9 <property name="password" value="xxxxxx"/>
10 </driver-properties>
11 <maximum-connection-count>5</maximum-connection-count>
12 <minimum-connection-count>2</minimum-connection-count>
13 <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
14 </proxool>
15 <proxool>
16 <alias>xxxx</alias>
17 <driver-url>jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=another_database_name</driver-url>
18 <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
19 <driver-properties>
20 <property name="user" value="xxxxxx"/>
21 <property name="password" value="xxxxxx"/>
22 </driver-properties>
23 <maximum-connection-count>5</maximum-connection-count>
24 <minimum-connection-count>2</minimum-connection-count>
25 <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
26 </proxool>
27 </something-else-entirely>
28
配置文件中的一些內(nèi)容需要修改成自己項(xiàng)目對(duì)應(yīng)的信息。
1.<alias> :為該連接池起一個(gè)別名,在其他文件中引用。引用是:(proxool.your_own_name);
2. <driver-url>jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=another_database_name</driver-url>
<driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
<driver-properties>
<property name="user" value="xxxxxx"/>
<property name="password" value="xxxxxx"/>
</driver-properties>
這些配置大家應(yīng)該比較熟悉吧。配置JDBC連接不同數(shù)據(jù)庫(kù)的驅(qū)動(dòng)類(lèi)和連接URL。
4.<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
proxool在未斷開(kāi)的連接空閑的時(shí)候 會(huì)隔段時(shí)間執(zhí)行這條sql語(yǔ)句以維持連接
5.<maximum-new-connections>:指因未有空閑連接可以分配而在隊(duì)列中等候的最大請(qǐng)求數(shù),超過(guò)這個(gè)請(qǐng)求數(shù)的用戶(hù)連接就不會(huì)被接受。
6.<prototype-count>:最少保持的空閑連接數(shù)。
7.<maximum-connection-count>: 允許最大連接數(shù),超過(guò)了這個(gè)連接,再有請(qǐng)求時(shí),就排在隊(duì)列中等候,最大的等待請(qǐng)求數(shù)由maximum-new-connections決定
8.<minimum-connection-count>:最小連接數(shù)
3.初始化連接池
在proxool的包中有這樣一個(gè)類(lèi)org.logicalcobwebs.proxool.configuration.JAXPConfigurator可以接收xml配置文件解析并進(jìn)行初始化連接池。
1 JAXPConfigurator.configure("src/java-test/org/logicalcobwebs/proxool/configuration/proxool.xml", false);
2 // The false means non-validating
2 // The false means non-validating
一般使用包裝好的org.logicalcobwebs.proxool.configuration.ServletConfigurator類(lèi)進(jìn)行解析
如果在tomcat啟動(dòng)的時(shí)候web.xml中加入ServletConfigurator類(lèi)的servlet配置并將此servlet的加載順序提前 那么此連接池在啟動(dòng)的時(shí)候就會(huì)創(chuàng)建好
<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/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</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/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
這樣以來(lái),就能夠在程序中應(yīng)用連接池進(jìn)行連接數(shù)據(jù)庫(kù)了。
4.利用連接池連接數(shù)據(jù)庫(kù)
使用下面的語(yǔ)句:
1 connection = DriverManager.getConnection("proxool.your_own_name");
5.利用proxool提供的web化監(jiān)測(cè)所配置的連接池
proxool中提供了AdminServlet監(jiān)測(cè)連接池中的數(shù)據(jù)庫(kù),利用web.xml配置其servlet mapping 就可以通過(guò)瀏覽器進(jìn)行監(jiān)測(cè)了。
同樣在web.xml中配置
1 <servlet>
2 <servlet-name>Admin</servlet-name>
3 <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
4 </servlet>
5 <servlet-mapping>
6 <servlet-name>Admin</servlet-name>
7 <url-pattern>/admin</url-pattern>
8 </servlet-mapping>
2 <servlet-name>Admin</servlet-name>
3 <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
4 </servlet>
5 <servlet-mapping>
6 <servlet-name>Admin</servlet-name>
7 <url-pattern>/admin</url-pattern>
8 </servlet-mapping>
具體內(nèi)容很簡(jiǎn)單,不再詳細(xì)解釋了。