欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

在tomcat下配置BoneCP連接池

系統 2330 0

公司的內部服務器,一直是采用的tomcat,連接池也是采用的tomcat自帶的dbcp.最近發現好象連接池的數據庫連接只會增加,不會自動釋 放.后來網上一查,很多人說這是dbcp的老毛病了,雖然基本不影響使用,但畢竟占用了數據庫資源,因此,想測試一下其它連接池.首先找到有人推薦的 proxool,這個網上有詳細的配置方式,一配就通了.但又在網上看到一個快速的連接池BoneCP,決定也測試一下.結果在 http://jolbox.com/ 和網上都只看到在spring下的配置方式.于是自己參照dbcp的方式和tomcat文檔,弄了大半天,終于配置好了.整理一下,發出來,希望能給有類似需要的人一些參考.

1.環境:jdk1.6,tomcat6.0.20,bonecp-0.6.4
2.需要的包:google-collections-1.0.jar,slf4j-api-1.5.11.jar,slf4j-log4j12-1.5.11.jar,bonecp-0.6.4.jar
3.tomcat的配置方式:
<Resource
  name="clientdb"
  auth="Container"
  type="com.jolbox.bonecp.BoneCPDataSource"
  factory="org.apache.naming.factory.BeanFactory"
  driverClass="oracle.jdbc.driver.OracleDriver"
  username=" "
  password=" "
  jdbcUrl="jdbc:oracle:thin:@127.0.0.1:1521:DB"
  idleConnectionTestPeriod="0"
  idleMaxAge="10"
  partitionCount="1"
  maxConnectionsPerPartition="5"
  minConnectionsPerPartition="1"
  connectionTestStatement=""
  initSQL="select 1 from dual"
/>
可以放到conf/server.xml文件的 <GlobalNamingResources>節,也可放到<context>中
4.使用方式:
和dbcp是一樣的:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup(JNDIName);
con = ds.getConnection();
5.資源下載:
http://jolbox.com/bonecp/downloads/maven/com/jolbox/bonecp/0.6.4/bonecp-0.6.4.jar
http://google-collections.googlecode.com/files/google-collect-1.0.zip
http://www.slf4j.org/dist/slf4j-1.5.11.zip?

?

?

?BoneCP?參數詳解:

========================================?

一、BoneCP配置文件格式(bonecp-config.xml):?

      
        1
      
       xml version="1.0" encoding="UTF-8"?>  
      
2 < bonecp-config >
3 < default-config >
4
5 < property name ="..." > ...property>
6 default-config>
7 bonecp-config>

二、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
設置獲取connection超時的時間。這個參數默認為Long.MAX_VALUE;單位:毫秒。
在調用getConnection獲取connection時,獲取時間超過了這個參數,就視為超時并報異常。

三、BoneCP線程配置參數
1.releaseHelperThreads
設置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
設置connection的空閑存活時間。這個參數默認為60,單位:分鐘。設置為0該功能失效。
通過ConnectionTesterThread觀察每個分區中的connection,如果這個connection距離最后使用的時間大于這個參數就會被清除。
注意:這個參數僅和idleConnectionTestPeriod搭配使用,而且不要在這里設置任何挑釁的參數!
5.idleConnectionTestPeriod
設置測試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操作失敗的時候會自動回放先前的操作,如果在回放期間還是失敗,則拋出異常。注意:這個功能會使連接池微弱地降低運行速度。
?

在tomcat下配置BoneCP連接池


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 999在线 | 久久精品国产第一区二区 | 天天躁日日躁狠狠很躁 | 蜜桃视频在线观看免费视频网站www | 一级黄色淫片 | 久久精品视频免费 | 欧美视频三区 | 成人亚洲欧美日韩在线 | 成人影音 | 日本免费三级网站 | 瑟瑟网站免费网站入口 | 天天看天天摸色天天综合网 | 亚洲国产aⅴ成人精品无吗 最新国产网址 | 日本在线免费观看 | 91精品国产综合久久婷婷香蕉 | 国产精品1区2区3区 二区国产 | 国产精品久久久久久久久久免费看 | 久久91av | 在线久草 | 一区二区三区国产在线 | 国产精品婷婷午夜在线观看 | 天天操一操 | 成人午夜动漫在线观看 | 亚洲色图综合 | 天天草b | 99久久精品国产一区二区三区 | 欧美zzzz| 国产精品视频在线播放 | 亚洲综合精品一区二区三区中文 | 狠狠操夜夜爱 | 一级毛片在线观看视频 | 毛片短视频 | 久青青| 久草97 | 美女被免费网站在线视频九色 | 成人在线综合网 | 欧美精品一区二区三区在线播放 | 5g免费影院永久天天影院在线 | 97国产精品视频人人做人人爱 | 狠狠色欧美亚洲狠狠色五 | 久草网站|