公司裡用的連線池都是自己寫好了,封裝起來的,做大型專案的時候,非常有用,但近段時間總是發現資料庫連線過多,造成資料庫連線壓力過大,**無法訪問等 嚴重後果,我們做的**主要是用於移動公司的後台,經常會處理很大"群集任務",找了很長時間,發現是程式裡有很多開啟的連線沒有關閉,放回到連線池裡 去,造成連線數不夠的問題.
後來上網上找了這個proxool連線池外掛程式,發現有自動kill不活動的連線的功能.而且有view方式檢視連線情況,而且很多資料都是配置完成。決定在專案中試驗一下。
****:
http://proxool.sourceforge.net/ 當前版本:proxool-0.9.0rc2
2、解壓縮proxool-0.9.0rc2.zip,拷貝lib/proxool-0.9.0rc2.jar到web-info/lib 拷貝jdbc驅動到web-info/lib
3、在web-info下建立檔案:proxool.xml
<?xml version="1.0" encoding="utf-8"?>
test
jdbc:oracle:thin:@192.168.10.160:1521:orc1
oracle.jdbc.driver.oracledriver
10 select current_date
4、在web.xml裡新增如下:
proxoolservletconfigurator
org.logicalcobwebs.proxool.configuration.servletconfigurator
xmlfile
web-inf/config/proxool.xml
1 admin
org.logicalcobwebs.proxool.admin.servlet.adminservlet
/admin
5、在呼叫資料庫連線**:
class.forname("org.logicalcobwebs.proxool.proxooldriver");
connection conn = drivermanager.getconnection("proxool.develop");
在呼叫資料庫連線**
class.forname("org.logicalcobwebs.proxool.proxooldriver");
connection conn = drivermanager.getconnection("proxool.test");
還有一些配置屬性:
maximum-connection-lifetime 最大連線生命週期 預設值:4小時
maximum-active-time: 最大活動時間 預設值:5分鐘
maximum-connection-count 最大連線數 預設值:15個
minimum-connection-count 最小連線數 預設值:5個
在用admin呼叫的時候,可以檢視這個web應用所有的連線數的狀態,雖然這個外掛程式可以把不活動的連線自動放到連線池裡,但是如果連線數過多,而不及時kill的話,對**的連線是有很大的影響的,建議還是手工kill。
注意:一般連線用完應關閉連線,對於執行時間比較長的操作,maximum-active-time的值要設大一些,不然時間到了,連線池會將連線關閉, 導致資料庫操作出錯。對於連續的統計任務,使用資料庫連線可以在一小時以上,應考慮自動關閉的情況,加上事務處理,並重新建立連線。
使用Proxool連線池
jdbc mysql 127.0.0.1 3306 student com.mysql.jdbc.driver 10select current date proxool.xml這個檔案是用來設定別名的。其中標籤就是別名的設定段。alias是別名 driver url是驅動的url,就是連線的url...
IBATIS使用proxool連線池
在眾多專案中使用過諸多連線池,如dbcp,proxool等,發現還是proxool好使,主要是相容性好,效能穩定。在某次專案中,由於歷史版本問題,使用了兩個連線池,乙個是proxool,乙個是ibatis自由的 但是在連線乙個專有資料庫時,卻發現proxool可以建立連線池,而ibatis的 卻不能...
Proxool連線池設定
proxool連線池是sourceforge下的乙個開源專案,這個專案提供乙個健壯 易用的連線池,最為關鍵的是這個連線池提供監控的功能,方便易用,便於發現連線洩漏的情況。開源專案位址是 配置連線池比較的簡單 2 配置資料來源 在web info下建立檔案 proxool.xml,檔案內容如下 dev...