1、新建web-inf/proxool.xml配置連接池屬性
proxool支持多配置方式如property,javabean等
















相關參數說明
這一步主要配置連接池的一些參數。
由于整個程序已經可以運行起來了,或許你很高興,但是你可不要高興的太早,如果就這樣拿你的項目去做壓力測試,那十有八九是通不過的!為什么???因為你的連接池還沒有經過參數的調優,下面我就簡單的介紹一下各個參數的意思,你明白了這些,壓力測試肯定不成問題。
house-keeping-sleep-time: house keeper 保留線程處于睡眠狀態的最長時間,house keeper 的職責就是檢查各個連接的狀態,并判斷是否需要銷毀或者創建,這個的默認值是30秒。
house-keeping-test-sql: 如果發現了空閑的數據庫連接.house keeper 將會用這個語句來測試.這個語句最好非??斓谋粓绦?如果沒有定義,測試過程將會被忽略。
maximum-active-time: 如果housekeeper 檢測到某個線程的活動時間大于這個數值.它將會殺掉這個線程.所以確認一下你的服務器的帶寬.然后定一個合適的值.默認是5分鐘。經常有些人或許會遇到正在執行的程序忽然拒絕連接,莫明其妙的程序假死,這些都與這個參數的設置有關,我們大部分數據庫操作都會在5分鐘之內完成,可是偏偏有些可能5分鐘還完成不了,而這個值如果按照默認值的話,連接池就會不管你到底有沒有執行完,都會強行關閉數據庫連接,所以這個值你可要小心設置哦:)
maximum-connection-count: 最大的數據庫連接數.一般的大應用設置30就足夠了。
maximum-connection-lifetime: 一個線程的最大壽命.
minimum-connection-count: 最小的數據庫連接數,一般最好事先初始化一部分連接這樣,對于初次連接數據庫的應用效率比較高,推薦設置5-10
prototype-count: 連接池中可用的連接數量.如果當前的連接池中的連接少于這個數值.新的連接將被建立(假設沒有超過最大可用數).例如.我們有3個活動連接2個可用連接,而我們的prototype-count是4,那么數據庫連接池將試圖建立另外2個連接.這和 minimum-connection-count不同. minimum-connection-count把活動的連接也計算在內.prototype-count 是spare connections 的數量.
trace: 如果為true,那么每個被執行的SQL語句將會在執行期被log記錄(DEBUG LEVEL).你也可以注冊一個ConnectionListener (參看ProxoolFacade)得到這些信息.
由于整個程序已經可以運行起來了,或許你很高興,但是你可不要高興的太早,如果就這樣拿你的項目去做壓力測試,那十有八九是通不過的!為什么???因為你的連接池還沒有經過參數的調優,下面我就簡單的介紹一下各個參數的意思,你明白了這些,壓力測試肯定不成問題。
house-keeping-sleep-time: house keeper 保留線程處于睡眠狀態的最長時間,house keeper 的職責就是檢查各個連接的狀態,并判斷是否需要銷毀或者創建,這個的默認值是30秒。
house-keeping-test-sql: 如果發現了空閑的數據庫連接.house keeper 將會用這個語句來測試.這個語句最好非??斓谋粓绦?如果沒有定義,測試過程將會被忽略。
maximum-active-time: 如果housekeeper 檢測到某個線程的活動時間大于這個數值.它將會殺掉這個線程.所以確認一下你的服務器的帶寬.然后定一個合適的值.默認是5分鐘。經常有些人或許會遇到正在執行的程序忽然拒絕連接,莫明其妙的程序假死,這些都與這個參數的設置有關,我們大部分數據庫操作都會在5分鐘之內完成,可是偏偏有些可能5分鐘還完成不了,而這個值如果按照默認值的話,連接池就會不管你到底有沒有執行完,都會強行關閉數據庫連接,所以這個值你可要小心設置哦:)
maximum-connection-count: 最大的數據庫連接數.一般的大應用設置30就足夠了。
maximum-connection-lifetime: 一個線程的最大壽命.
minimum-connection-count: 最小的數據庫連接數,一般最好事先初始化一部分連接這樣,對于初次連接數據庫的應用效率比較高,推薦設置5-10
prototype-count: 連接池中可用的連接數量.如果當前的連接池中的連接少于這個數值.新的連接將被建立(假設沒有超過最大可用數).例如.我們有3個活動連接2個可用連接,而我們的prototype-count是4,那么數據庫連接池將試圖建立另外2個連接.這和 minimum-connection-count不同. minimum-connection-count把活動的連接也計算在內.prototype-count 是spare connections 的數量.
trace: 如果為true,那么每個被執行的SQL語句將會在執行期被log記錄(DEBUG LEVEL).你也可以注冊一個ConnectionListener (參看ProxoolFacade)得到這些信息.
2)在web.xml中配置讀取proxool.xml;這個相當于程序中使用
JAXPConfigurator.configure("proxool.xml", false)。
在web.xml文件中添加以下內容













3)獲取連接參考org.logicalcobwebs.proxool.examples.Simple類。
下載的開包中有相應的文檔說明。可以參考以下代碼
public Connection getConenctionFromProxool() {
Connection conn = null ;
try {
Class.forName( " org.logicalcobwebs.proxool.ProxoolDriver " );
// conn=DriverManager.getConnection("protest:oracle.jdbc.OracleDriver:jdbc:oracle:thin:@130.51.65.10:1521:gzjf","","");
conn = DriverManager.getConnection( " proxool.oracle " );
if (conn == null ) {
log.info( " 獲取連接失敗.,
" );
} else {
log.info( " 獲得連接成功 " );
}
} catch (Exception e) {
log.error(e.toString());
}
return conn;
}
Connection conn = null ;
try {
Class.forName( " org.logicalcobwebs.proxool.ProxoolDriver " );
// conn=DriverManager.getConnection("protest:oracle.jdbc.OracleDriver:jdbc:oracle:thin:@130.51.65.10:1521:gzjf","","");
conn = DriverManager.getConnection( " proxool.oracle " );
if (conn == null ) {
log.info( " 獲取連接失敗.,


} else {
log.info( " 獲得連接成功 " );
}
} catch (Exception e) {
log.error(e.toString());
}
return conn;
}
下面是監控方法:
4)web.xml中配置adminservlet:
adminservlet的作中是監控連接池的運行狀況。









用http://localhots/web-name/Admin訪問得到監控結果
這個工具用起來就還是挺簡單的,網站上有詳細的文檔