common-dbcp2數據庫鏈接池參數說明

參數 默認值 描述 建議值
DefaultAutoCommit
 null  
經過這個池建立鏈接的默認自動提交狀態。若是不設置,則setAutoCommit 方法將不被調用。
 true
 
DefaultReadOnly
 null
經過這個池建立鏈接的默認只讀狀態。若是不設置,則setReadOnly  方法將不被調用。(部分驅動不支持只讀模式,如:Informix)
 
 false
 
DefaultTransactionIsolation
-1   
經過這個池建立鏈接的默認事務策略,設置值爲下列中的某一個:Connection.TRANSACTION_READ_COMMITTED 
NONE、READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ、SERIALIZABLE、
Connection.TRANSACTION_READ_COMMITTED
 
 
DefaultCatalog
null   
經過這個池建立鏈接的默認缺省的catalog
 
 
CacheState
true   
//若是設置爲true,池化的鏈接將在第一次讀或寫,以及隨後的寫的時候緩存當前的只讀狀態和自動提交設置。
// 這樣就省去了對getter的任何進一步的調用時對數據庫的額外查詢。
// 若是直接訪問底層鏈接,只讀狀態和/或自動提交設置改變緩存值將不會被反映到當前的狀態,在這種狀況下,應該將該屬性設置爲false以禁用緩存。
 
       
InitialSize
0
當這個池被啓動時初始化的建立的鏈接個數
 10
MaxTotal
8  
能夠在這個池中同時被分配的有效鏈接數的最大值,如設置爲負數,則不限制
 100
MaxIdle
8  
能夠在池中保持空閒的最大鏈接數,超出設置值以外的空閒鏈接將被回收,如設置爲負數,則不限制
20 
MinIdle
 0  
能夠在池中保持空閒的最小鏈接數,超出設置值以外的空閒鏈接將被建立,如設置爲0,則不建立
10
MaxWaitMillis
 -1
(若是沒有可用鏈接)池在拋出異常前等待的一個鏈接被歸還的最大毫秒數,設置爲-1則等待時間不肯定
 
 500
ValidationQuery
null 
在鏈接池返回鏈接給調用者前用來進行鏈接校驗的查詢sql。
若是指定,則這個查詢必須是一個至少返回一行數據的SQL SELECT語句。
若是沒有指定,則鏈接將經過調用isValid() 方法進行校驗。
 
SELECT 1 FROM DUAL
TestOnCreate
 false  
指明對象在建立後是否須要被校驗,若是對象校驗失敗,則觸發對象建立的租借嘗試將失敗。
 
TestOnBorrow
 true  
指明在從池中租借對象時是否要進行校驗,若是對象校驗失敗,則對象將從池子釋放,而後咱們將嘗試租借另外一個
 
TestOnReturn
false  
指明在將對象歸還給鏈接池前是否須要校驗
 
TestWhileIdle
false   
指明對象是否須要經過對象驅逐者進行校驗(若是有的話),假如一個對象校驗失敗,則對象將被從池中釋放。
 true
TimeBetweenEvictionRunsMillis
-1   
空閒對象驅逐線程運行時的休眠毫秒數,若是設置爲非正數,則不運行空閒對象驅逐線程
 
NumTestsPerEvictionRun
 3  
在每一個空閒對象驅逐線程運行過程當中中進行檢查的對象個數。(若是有的話)
 
MinEvictableIdleTimeMillis
 
1000 * 60 * 30
 
符合對象驅逐對象驅逐條件的對象在池中最小空閒毫秒總數(若是有的話)
 
SoftMinEvictableIdleTimeMillis
 -1  
符合對象驅逐對象驅逐條件的對象在池中最小空閒毫秒總數,額外的條件是池中至少保留有minIdle所指定的個數的鏈接。
當miniEvictableIdleTimeMillis 被設置爲一個正數,空閒鏈接驅逐者首先檢測miniEvictableIdleTimeMillis,
當空閒鏈接被驅逐者訪問時,首先與miniEvictableIdleTimeMillis 所指定的值進行比較(而不考慮當前池中的空閒鏈接數),
而後比較softMinEvictableIdleTimeMillis所指定的鏈接數,包括minIdle條件。
 
MaxConnLifetimeMillis
 -1  
一個鏈接的最大存活毫秒數。若是超過這個時間,則鏈接在下次激活、鈍化、校驗時都將會失敗。若是設置爲0或小於0的值,則鏈接的存活時間是無限的。
 
ConnectionInitSqls
 null  
在第一次建立時用來初始化物理鏈接的SQL語句集合。這些語句只在配置的鏈接工廠建立鏈接時被執行一次。
 
Lifo
 true  
設置爲true代表鏈接池(若是池中有可用的空閒鏈接時)將返回最後一次使用的租借對象(最後進入)。
設置爲false則代表池將表現爲FIFO隊列——將會按照它們被歸還的順序從空閒鏈接實例池中獲取鏈接
 
PoolPreparedStatements
 false  
設置該鏈接池的預處理語句池是否生效
 
MaxOpenPreparedStatements
 -1  
能夠在語句池中同時分配的最大語句數。設置爲負數則不限制
 
AccessToUnderlyingConnectionAllowed
 false  
控制PoolGuard是否能夠訪問底層鏈接
 
RemoveAbandonedOnBorrow
 
 false  
//標記是否刪除超過removeAbandonedTimout所指定時間的被遺棄的鏈接。
//若是設置爲true,則一個鏈接在超過removeAbandonedTimeout所設定的時間未使用即被認爲是應該被拋棄並應該被移除的。
建立一個語句,預處理語句,可調用語句或使用它們其中的一個執行查詢(使用執行方法中的某一個)會從新設置其父鏈接的lastUsed 屬性。
//在寫操做較少的應用程序中將該參數設置爲true能夠將數據庫鏈接從鏈接關閉失敗中恢復。
 
 
RemoveAbandonedTimeout
 300
一個被拋棄鏈接能夠被移除的超時時間,單位爲秒
 
 
 
LogAbandoned
 false  
標誌是否爲應用程序中遺棄語句或鏈接的代碼開啓日誌堆棧追蹤。由於一個堆棧跟蹤已被建立,被拋棄的語句和鏈接相關的日誌將被覆蓋到打開每一個鏈接或者建立一個Statement時
相關文章
相關標籤/搜索