BoneCP連接池配置參數詳細說明

 

參數

意義

說明

一 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。
這個數量趨於maxConnectionPerPartition和minConnectionPerPartition之間。這個參數是以百分比的形式來計算的。例如:設置爲20,下面的條件如果成立:Free Connections / MaxConnections< poolAvailabilityThreshold;就會創建出新的connection。
換句話來說連接池爲每個分區至少維持20%數量的可用connection。設置爲0時,每當需要connection的時候,連接池就要重新創建新connection,這個時候可能導致應用程序可能會爲了獲得新connection而小等一會。

9

(connectionTimeout )0.8版中替換爲:connectionTimeoutInMs

設置獲取connection超時的時間。這個參數默認爲Long.MAX_VALUE;單位:毫秒。

在調用getConnection獲取connection時,獲取時間超過了這個參數,就視爲超時並報異常。

二 BoneCP線程配置參數 

1

releaseHelperThreads

--0.8版中已不建議使用。

設置connection助手線程個數。這個參數默認爲3。如果小於0,BoneCP將設置爲3。

設置爲0時,應用程序線程被阻塞,直到連接池執行必要地清除和回收connection,並使connection在其它線程可用。
設置大於0時,連接池在每個分區中創建助手線程處理回收關閉後的connection(應用程序會通過助手線程異步地將這個connection放置到一個臨時隊列中進行處理)。
對於應用程序在每個connection上處理大量工作時非常有用。可能會降低運行速度,不過在高併發的應用中會提高性能。

2

statementReleaseHelperThreads

設置statement助手線程個數。這個參數默認爲3。如果小於0,BoneCP將設置爲3。

設置爲0時,應用程序線程被阻塞,直到連接池或JDBC驅動程序關閉statement。
設置大於0時,連接池會在每個分區中創建助理線程,異步地幫助應用程序關閉statement當應用程序打開了大量的statement是非常有用的。可能會降低運行速度,不過在高併發的應用中會提高性能。

3

maxConnectionAge

設置connection的存活時間。這個參數默認爲0,單位:毫秒。設置爲0該功能失效。

通過ConnectionMaxAgeThread觀察每個分區中的connection,不管connection是否空閒,如果這個connection距離創建的時間大於這個參數就會被清除。當前正在使用的connection不受影響,直到返回到連接池再做處理。

4

idleMaxAge在0.8版中替換爲

idleMaxAgeInMinutes

設置connection的空閒存活時間。這個參數默認爲60,單位:分鐘。設置爲0該功能失效。

通過ConnectionTesterThread觀察每個分區中的connection,如果這個connection距離最後使用的時間大於這個參數就會被清除。注意:這個參數僅和idleConnectionTestPeriod搭配使用

5

idleConnectionTestPeriod在0.8版中替換爲idleConnectionTestPeriodInMinutes  

設置測試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參數設置爲可用時,設置這個參數纔會起作用。
設置爲0時,永遠不關閉。

3

logStatementsEnabled

設置是否開啓記錄SQL語句功能。這個參數默認是false。

將執行的SQL記錄到日誌裏面(包括參數值)。調試階段會很有用.

4

queryExecuteTimeLimit

設置執行SQL的超時時間。這個參數默認爲0;單位:毫秒。

當查詢語句執行的時間超過這個參數,執行的情況就會被記錄到日誌中。
設置爲0時,該功能失效。

5

disableConnectionTracking

設置是否關閉connection跟蹤功能。這個參數默認爲false。

設置爲true,連接池則不會監控connection是否嚴格的關閉;設置爲false,則啓用跟蹤功能(僅追蹤通過Spring或一些事務管理等機制確保正確釋放connection並放回到連接池中)。

6

transactionRecoveryEnabled

設置事務回放功能。這個參數默認爲false。

設置爲true時,MemorizeTransactionProxy可以記錄所有在connection上操作的情況,當connetion操作失敗的時候會自動回放先前的操作,如果在回放期間還是失敗,則拋出異常。注意:這個功能會使連接池微弱地降低運行速度。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章