Proxool連接池是sourceforge下的一個開源項目這個項目提供一個健壯易用的連接池最為關鍵的是這個連接池提供監控的功能方便易用便於發現連接洩漏的情況開源項目地址是 配置連接池比較的簡單
將下載的包解開從包中的lib目錄下將proxoolxxxjar(xxx隨著不同的版本號變化)加入你的工程中
配置數據源
在webinfo下建立文件proxoolxml文件內容如下
<?xml version= encoding=UTF?>
<somethingelseentirely>
<proxool>
<alias>Develop</alias>
<driverurl>jdbc:mysql://localhost/kuanxue</driverurl>
<driverclass>commysqljdbcDriver</driverclass>
<driverproperties>
<property name=user value=root/>
<property name=password value=/>
<property name=useUnicode value=true/>
<property name=characterEncoding value=GBK/>
</driverproperties>
<!自動偵察各個連接狀態的時間間隔(毫秒)偵察到空閒的連接就馬上回收超時的銷毀>
<housekeepingsleeptime></housekeepingsleeptime>
<!最少保持的空閒連接數>
<prototypecount></prototypecount>
<!允許最大連接數超過了這個連接再有請求時就排在隊列中>
<maximumconnectioncount></maximumconnectioncount>
<!最小連接數>
<minimumconnectioncount></minimumconnectioncount>
<!最大的等待請求數即因沒有空閒連接可以分配而在隊列中等候的最大請求數超過這個請求數的 用戶連接就不會被接受>
<proxoolsimultaneousbuildthrottle></proxoolsimultaneousbuildthrottle>
<!Test SQL(SELECT getDate()) >
<housekeepingtestsql>select CURRENT_DATE</housekeepingtestsql>
</proxool>
</somethingelseentirely>
配置webxml 在webxml中增加
<! 配置初始化servlet在web容器加載的時候自動加載配置文件如果不是web程序這個部分就需要通過開發接口來初始化了 >
<servlet>
<servletname>proxoolInitialServlet</servletname>
<servletclass>orglogicanfigurationServletConfigurator</servletclass>
<initparam>
<paramname>xmlFile</paramname>
<paramvalue>WEBINF/proxoolxml</paramvalue>
</initparam>
<loadonstartup></loadonstartup>
</servlet>
<!配置監控servlet其實如果不想監控的話可以不配>
<servlet>
<servletname>dbpoolAdmin</servletname>
<servletclass>orglogicalcobwebsproxooladminservletAdminServlet</servletclass>
</servlet>
<servletmapping>
<servletname>dbpoolAdmin</servletname>
<urlpattern>/dbpool</urlpattern>
</servletmapping>
在程序中調用 一般我將獲取connection的行為封裝為一個工廠模式便於多種情況的切換以下是其中proxool數據源的getConnection方法的實現
public Connection getConnection() {
try{
ClassforName(orglogicalcobwebsproxoolProxoolDriver);
return DriverManagergetConnection(proxoolDevelop);
}catch(Exception ex){
exprintStackTrace();
}
return null;
}
應用開發
在實際的應用中我們可能需要更多的功能比如監控功能不夠強大權限不好控制我們希望能夠編寫出更強大的功能比如殺死一些大的查詢語句等記錄各種查詢語句占用的時間這就需要對開發接口進行進一步的研究了
From:http://tw.wingwit.com/Article/program/Java/hx/201311/27028.html