1. 程式人生 > >DBCP、C3P0、Proxool 、 BoneCP開源連線池的比較

DBCP、C3P0、Proxool 、 BoneCP開源連線池的比較

 acquireIncrement: 當連線池中的連線耗盡的時候c3p0一次同時獲取的連線數。Default: 3
fatal-sql-exception : 它是一個逗號分割的資訊片段.當一個SQL異常發生時,他的異常資訊將與這個資訊片段進行比較.如果在片段中存在,那麼這個異常將被認為是個致命錯誤 (Fatal SQL Exception ).這種情況下,資料庫連線將要被放棄.無論發生什麼,這個異常將會被重擲以提供給消費者.使用者最好自己配置一個不同的異常來丟擲.
fatal-sql-exception-wrapper-class : 正如上面所說,你最好配置一個不同的異常來重擲.利用這個屬性,使用者可以包裝SQLException,使他變成另外一個異常.這個異常或者繼承 SQLException或者繼承字RuntimeException.proxool 自帶了2個實現:'org.logicalcobwebs.proxool .FatalSQLException' 和'org.logicalcobweb s.proxool .FatalRuntimeException'
.後者更合適.
house-keeping-sleep-time : house keeper 保留執行緒處於睡眠狀態的最長時間,house keeper 的職責就是檢查各個連線的狀態,並判斷是否需要銷燬或者建立.
house-keeping-test-sql : 如果發現了空閒的資料庫連線.house keeper 將會用這個語句來測試.這個語句最好非常快的被執行.如果沒有定義,測試過程將會被忽略。
injectable-connection-interface : 允許proxool 實現被代理的connection物件法.
injectable-statement-interface : 允許proxool 實現被代理的Statement 物件方法.
injectable-prepared-statement-interface : 允許proxool 實現被代理的PreparedS tatement 物件方法.
injectable-callable-statement-interface : 允許proxool 實現被代理的CallableStat ement 物件方法.
jmx : 如果屬性為true,就會註冊一個訊息Bean到jms服務,訊息Bean物件名: "Proxool:type=Pool, name=<alias>". 預設值為false.
jmx-agent-id : 一個逗號分隔的JMX代理列表(如使用MbeanServerFactory .fi ndMBeanServer(String agentId)註冊的連線池。)這個屬性是僅當"jmx"屬性設定為"true"才有效。所有註冊jmx伺服器使用這個屬性是不確定的
jndi-name : 資料來源的名稱
maximum-active-time : 如果housekeeper 檢測到某個執行緒的活動時間大於這個數值.它將會殺掉這個執行緒.所以確認一下你的伺服器的頻寬.然後定一個合適的值.預設是5分鐘.
maximum-connection-count : 最大的資料庫連線數.
maximum-connection-lifetime : 一個執行緒的最大壽命.
minimum-connection-count : 最小的資料庫連線數
overload-without-refusal-lifetime : 這可以幫助我們確定連線池的狀態。如果我們已經拒絕了一個連線在這個設定值(毫秒),然後被認為是超載。預設為60秒。
prototype-count : 連線池中可用的連線數量.如果當前的連線池中的連線少於這個數值.新的連線將被建立(假設沒有超過最大可用數).例如.我們有3個活動連線2個可用連線, 而我們的prototype-count是4,那麼資料庫連線池將試圖建立另外2個連線.這和 minimum-connection-count不同. minimum-connect ion-count把活動的連線也計算在內.prototype-count 是spare connections 的數量.
recently-started-threshold :這可以幫助我們確定連線池的狀態,連線數少還是多或超載。只要至少有一個連線已開始在此值(毫秒)內,或者有一些多餘的可用連線,那麼我們假設連線池是開啟的。預設為60秒
simultaneous-build-throttle :這是我們可一次建立的最大連線數。那就是新增的連線請求,但還沒有可供使用的連線。由於連線可以使用多執行緒,在有限的時間之間建立聯絡從而帶來可用連 接,但是我們需要通過一些方式確認一些執行緒並不是立即響應連線請求的,預設是10。
statistics :  連線池使用狀況統計。 引數“10s,1m,1d”
statistics-log-level :日誌統計跟蹤型別。 引數“ERROR”或 “INFO”
test-before-use : 如果為true,在每個連線被測試前都會服務這個連線,如果一個連線失敗,那麼將被丟棄,另一個連線將會被處理,如果所有連線都失敗,一個新的連線將會被建立。否則將會丟擲一個SQLException異常。
test-after-use : 如果為true,在每個連線被測試後都會服務這個連線,使其回到連線池中,如果連線失敗,那麼將被廢棄。
trace : 如果為true,那麼每個被執行的SQL語句將會在執行期被log記錄(DEBUG LEVEL).你也可以註冊一個ConnectionListener (參看ProxoolFacade)得到這些資訊