|
參數 |
意義 |
說明 |
一 BoneCP主要配置參數 |
|||
1 |
jdbcUrl |
設置數據庫URL |
|
2 |
username |
設置數據庫用戶名 |
|
3 |
password |
設置數據庫密碼 |
|
4 |
partitionCount |
設置分區個數。這個參數默認爲1,建議3-4(根據特定應用程序而定)。 |
爲了減少鎖競爭和改善性能,從當前線程分區(thread-affinity)中獲取一個connection,也就是這個樣子:partitions[Thread.currentThread().getId() % partitionCount]。當擁有充足的短期(short-lived)的線程時候,這個參數設置越大,性能越好。當超過一定的閥值時,連接池的維護工作就可能對性能造成一定的負面影響(僅當分區上的connection使用耗盡時)。 |
5 |
maxConnectionsPerPartition |
設置每個分區含有connection最大個數。這個參數默認爲2。如果小於2,BoneCP將設置爲50。 |
比如:partitionCount設置爲3,maxConnectionPerPartition設置爲5,你就會擁有總共15個connection。注意:BoneCP不會將這些connection一起創建出來,而是說在需要更多connection的時候從minConnectionsPerPartition參數開始逐步地增長connection數 |
6 |
minConnectionsPerPartition |
設置每個分區含有connection最小個數。這個參數默認爲0。 |
|
7 |
acquireIncrement |
設置分區中的connection增長數量。這個參數默認爲1。 |
當每個分區中的connection大約快用完時,BoneCP動態批量創建connection,這個屬性控制一起創建多少個connection(不會大於maxConnectionsPerPartition). |
8 |
poolAvailabilityThreshold |
設置連接池閥值。這個參數默認爲20%。如果小於0或是大於100,BoneCP將設置爲20。 |
連接池觀察線程(PoolWatchThread)試圖爲每個分區維護一定數量的可用connection。 |
9 |
|
設置獲取connection超時的時間。這個參數默認爲Long.MAX_VALUE;單位:毫秒。 |
在調用getConnection獲取connection時,獲取時間超過了這個參數,就視爲超時並報異常。 |
二 BoneCP線程配置參數 |
|||
1 |
releaseHelperThreads --0.8版中已不建議使用。 |
設置connection助手線程個數。這個參數默認爲3。如果小於0,BoneCP將設置爲3。 |
設置爲0時,應用程序線程被阻塞,直到連接池執行必要地清除和回收connection,並使connection在其它線程可用。 |
2 |
statementReleaseHelperThreads |
設置statement助手線程個數。這個參數默認爲3。如果小於0,BoneCP將設置爲3。 |
設置爲0時,應用程序線程被阻塞,直到連接池或JDBC驅動程序關閉statement。 |
3 |
maxConnectionAge |
設置connection的存活時間。這個參數默認爲0,單位:毫秒。設置爲0該功能失效。 |
通過ConnectionMaxAgeThread觀察每個分區中的connection,不管connection是否空閒,如果這個connection距離創建的時間大於這個參數就會被清除。當前正在使用的connection不受影響,直到返回到連接池再做處理。 |
4 |
idleMaxAgeInMinutes |
設置connection的空閒存活時間。這個參數默認爲60,單位:分鐘。設置爲0該功能失效。 |
通過ConnectionTesterThread觀察每個分區中的connection,如果這個connection距離最後使用的時間大於這個參數就會被清除。注意:這個參數僅和idleConnectionTestPeriod搭配使用 |
5 |
|
設置測試connection的間隔時間。這個參數默認爲240,單位:分鐘。設置爲0該功能失效。 |
通過ConnectionTesterThread觀察每個分區中的connection, 如果這個connection距離最後使用的時間大於這個參數並且距離上一次測試的時間大於這個參數就會向數據庫發送一條測試語句,如果執行失敗則將這個connection清除。 注意:這個值僅和idleMaxAge搭配使用,參數要適當! |
三 BoneCP其他可選配置參數 |
|||
1 |
acquireRetryAttempts |
設置重新獲取連接的次數。這個參數默認爲5。 |
獲取某個connection失敗之後會多次嘗試重新連接,如果在這幾次還是失敗則放棄。 |
2 |
acquireRetryDelay |
設置重新獲取連接的次數間隔時間。這個參數默認爲7000,單位:毫秒。如果小於等於0,BoneCP將設置爲1000。 |
獲取connection失敗之後再次嘗試獲取connection的間隔時間。 |
3 |
lazyInit |
設置連接池初始化功能。這個參數默認爲false。 |
設置爲true,連接池將會初始化爲空,直到獲取第一個connection。 |
4 |
statementsCacheSize |
設置statement緩存個數。這個參數默認爲0。 |
|
5 |
disableJMX |
設置是否關閉JMX功能。這個參數默認爲false。 |
|
6 |
poolName |
設置連接池名字。用於當作JMX和助手線程名字的後綴。 |
|
四 BoneCP調試配置參數 |
|||
1 |
closeConnectionWatch |
設置是開啓connection關閉情況監視器功能。這個參數默認爲false。 |
每當調用getConnection()時,都會創建CloseThreadMonitor,監視connection有沒有關閉或是關閉了兩次。警告:這個參數對連接池性能有很大的負面影響,慎用!僅在調試階段使用! |
2 |
closeConnectionWatchTimeout |
設置關閉connection監視器(CloseThreadMonitor)持續多長時間。這個參數默認爲0;單位:毫秒。 |
僅當closeConnectionWatch參數設置爲可用時,設置這個參數纔會起作用。 |
3 |
logStatementsEnabled |
設置是否開啓記錄SQL語句功能。這個參數默認是false。 |
將執行的SQL記錄到日誌裏面(包括參數值)。調試階段會很有用. |
4 |
queryExecuteTimeLimit |
設置執行SQL的超時時間。這個參數默認爲0;單位:毫秒。 |
當查詢語句執行的時間超過這個參數,執行的情況就會被記錄到日誌中。 |
5 |
disableConnectionTracking |
設置是否關閉connection跟蹤功能。這個參數默認爲false。 |
設置爲true,連接池則不會監控connection是否嚴格的關閉;設置爲false,則啓用跟蹤功能(僅追蹤通過Spring或一些事務管理等機制確保正確釋放connection並放回到連接池中)。 |
6 |
transactionRecoveryEnabled |
設置事務回放功能。這個參數默認爲false。 |
設置爲true時,MemorizeTransactionProxy可以記錄所有在connection上操作的情況,當connetion操作失敗的時候會自動回放先前的操作,如果在回放期間還是失敗,則拋出異常。注意:這個功能會使連接池微弱地降低運行速度。 |