真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

tomcat自帶連接池dbcp配置以及優(yōu)化說明-創(chuàng)新互聯(lián)

一個(gè)網(wǎng)站每天大概有20萬的訪問量,使用的tomcat自帶dbcp連接池,一般網(wǎng)站訪問很好,速度也很快,但是過一段時(shí)間后,總是報(bào)timeout waiting for idle object的異常信息,最后查了apache tomcat的官方文檔,終于找到解決方法:

成都創(chuàng)新互聯(lián)是專業(yè)的安澤網(wǎng)站建設(shè)公司,安澤接單;提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行安澤網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

數(shù)據(jù)庫連接池創(chuàng)建和管理池中的數(shù)據(jù)庫連接對象。重建和復(fù)用已存在的連接對象要比創(chuàng)建新的連接要頻繁的多。

連接池會存在這樣一個(gè)問題。web應(yīng)用已經(jīng)明確關(guān)閉ResultSet,Statement,及Connection對象;當(dāng)關(guān)閉出現(xiàn)故障的web應(yīng)用所使用的資源
時(shí)將會導(dǎo)致這個(gè)連接資源不能在復(fù)用,這就是數(shù)據(jù)庫連接池泄露,最終導(dǎo)致在你的應(yīng)用程序中沒有連接對象可以使用。


這當(dāng)然是有解決方法的,Apache Commons DBCP可以配置為跟蹤和恢復(fù)這些被棄的數(shù)據(jù)庫連接對象。不僅恢復(fù)還可以跟蹤那些連接數(shù)據(jù)庫卻沒有關(guān)閉的代碼片段。


要增加連接池中被棄的連接重新可用,打開配置文件,為Resource標(biāo)簽配置以下參數(shù):

removeAbandonedOnBorrow=true
removeAbandonedOnMaintenance=true
removeAbandonedTimeout="60"
logAbandoned="true"

默認(rèn)情況下removeAbandonedOnBorrow和removeAbandonedOnMaintenance都是為false。

注意:removeAbandonedOnMaintenance只有在timeBetweenEvictionRunsMillis設(shè)置為正數(shù)的情況下才有效。

removeAbandonedTimeout屬性是設(shè)置數(shù)據(jù)庫連接被釋最多空閑時(shí)間多少秒之后設(shè)置為空閑。默認(rèn)移除廢棄連接的時(shí)間為300秒。

提示:

如果啟用removeAbandonedOnMaintenance 或 removeAbandonedOnBorrow,那些被認(rèn)為廢棄的連接對象有可能被池回收。這個(gè)機(jī)制以下情況下會觸發(fā):
當(dāng)getNumIdle() < 2并且getNumActive() > getMaxTotal() - 3及emoveAbandonedOnBorrow 設(shè)置為true時(shí);或 當(dāng)removeAbandonedOnMaintenance設(shè)置為true并且回收完成時(shí)。
打個(gè)比方說:
如果設(shè)置maxTotal=20,當(dāng)有18個(gè)活躍連接、1個(gè)空閑連接時(shí)會觸發(fā)removeAbandonedOnBorrow,不過僅是那些使用時(shí)間超過removeAbandonedTimeout秒數(shù)的活動連接才會被移除(默認(rèn)是300秒)
,遍歷resultset不作為正在使用。創(chuàng)建Statement,PrepareStatement或CallableStatement或使用其中一個(gè)執(zhí)行查詢(執(zhí)行exceute方法)重置父連接的lastUsed屬性。

DBCP連接池配置參數(shù)講解

-----------------------------

一、Apache官方DBCP文檔給出的配置示例:

可參見:/tupian/20230522/jndi-datasource-examples-howto.html

 

               maxActive="100" maxIdle="30" maxWait="10000"

               username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"

               url="jdbc:mysql://localhost:3306/javatest"/>

tomcat JDBC連接池配置示例,自動檢查連接的可用性,dbcp定時(shí)檢測連接,dbcp自動重連的配置

  1. < Resource   
  2. name = "jdbc/TestDB"   JNDI數(shù)據(jù)源的name,查找時(shí)用:java:comp/env/jdbc/TestDB  
  3. type = "javax.sql.DataSource"   
  4. factory = "org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"   
  5. driverClassName = "com.mysql.jdbc.Driver"  JDBC驅(qū)動類  
  6. url ="jdbc:mysql://localhost:3306/test?  
  7. characterEncoding = UTF -8& autoReconnectForPools = true & rewriteBatchedStatements = true & useCursorFetch = true & defaultFetchSize = 20 " 數(shù)據(jù)庫URL地址    
  8. username = "xxx"  訪問數(shù)據(jù)庫用戶名  
  9. password = "xxx"  訪問數(shù)據(jù)庫的密碼  
  10.    
  11. maxWait = "3000"  從池中取連接的大等待時(shí)間,單位ms.  
  12. initialSize = "10"   初始化連接  
  13. maxIdle = "60"    大空閑連接  
  14. minIdle = "10"    最小空閑連接  
  15. maxActive = "80"  大活動連接  
  16.    
  17. validationQuery  =  "SELECT 1"   驗(yàn)證使用的SQL語句  
  18. testWhileIdle  =  "true"       指明連接是否被空閑連接回收器(如果有)進(jìn)行檢驗(yàn).如果檢測失敗,則連接將被從池中去除.  
  19. testOnBorrow  =  "false"    借出連接時(shí)不要測試,否則很影響性能  
  20. timeBetweenEvictionRunsMillis  =  "30000"   每30秒運(yùn)行一次空閑連接回收器  
  21. minEvictableIdleTimeMillis  =  "1800000"   池中的連接空閑30分鐘后被回收  
  22. numTestsPerEvictionRun = "10"  在每次空閑連接回收器線程(如果有)運(yùn)行時(shí)檢查的連接數(shù)量  
  23.       
  24. removeAbandoned = "true"   連接泄漏回收參數(shù),當(dāng)可用連接數(shù)少于3個(gè)時(shí)才執(zhí)行  
  25. removeAbandonedTimeout = "180"   連接泄漏回收參數(shù),180秒,泄露的連接可以被刪除的超時(shí)值  
  26. />   

網(wǎng)站名稱:tomcat自帶連接池dbcp配置以及優(yōu)化說明-創(chuàng)新互聯(lián)
URL鏈接:http://weahome.cn/article/doosjj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部