- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
dbcp问题
dbcp问题
tomcat DBCP连接池问题
最近频繁遇到连接池满的问题,已经在dbcp中设置连接有效性校验
testonreturn,testOnBorrow,testWhileIdle都设置为true了
而且也设置了removeAbandoned来回收空闲连接。
也检查了程序,应该不是忘记close的缘故但总是连接池满。
请问各位高手是否有方法能够打印出当前连接池中的对象都在执行什么sql语句。
是否可以显式的将连接池中的某一个datasource注销,并重新构建这个datasource,
而不用重启tomcat服务。TOP 回复 引用
俏皮小叮当
2楼 发表于 2010-08-31 17:04
查到一些资料与大家分享,希望能够深入讨论
connection耗尽不一定就是由connection leak引起,如果你的执行队列中线程数设置的比connection pool大,而且你的某些程序占用connection时间过长,致使执行队列中的线程已经把connection pool中的所有的connection都申请出来了,此时如果再有新的执行线程响应请求申请connection,pool中已经告罄,connection就无从得到了,只有等待。这从控制台的connection监控中是看得出的。这种情况下,如果程序能正确关闭connection,connection还是会被释放的,不会泄露。
还有一种情况是已获得connection的线程间发生了死锁,没法去释放connection,使得connection被一直占用。这要去重点检查一下应用中的synchronize代码段和涉及数据库锁的代码。同时可以定时,尤其是系统挂了后作一下thread dump,重点看看运行中和等待资源的线程在忙什么和等什么。
如果要查connection leak,还是得从应用入手,仔细检查connection的分配与释放。确保connection的释放代码放在finally段中。还有就是重点检查connection有没有被一些static对象引用。泄露往往就发生在这里。JVM的GC对付一般的Connection leak还是很有效的,比如说未关闭的connection只是函数中的局部变量且并未被其它对象引用。但GC对被Static对象引用的connection是有心无力。
用profiling工具可以辅助侦测connection leak,具体做法是在CPU的代码执行视图的代码执行树里,检查get connection与close connection的执行次数是否相同?如果get connection执行次数大于close connection,这就要重点检查一下了。这一类的工具有很多,常见的有:JProfiler,JProbe,OptimizeIt
------------------------------------------------------------------------
DBCP代码研读以及就数据库连接失效的解决
问题
网上很多评论说DBCP有很多BUG,但是都没有指明是什么BUG,只有一部分人说数据库如果因为某种原因断掉后再DBCP取道的连接都是失效的连接,而没有重新取。就此研读了一下DBCP的代码,共享之。
分析
DBCP使用apache的对象池ObjectPool作为连接池的实现,有以下主要的方法
Object borrowObject() throws Exception;从对象池取得一个有效对象
void returnObject(Object obj) throws Exception;使用完的对象放回对象池
void invalidateObject(Object obj) throws Exception;使对象失效
void addObject() throws Exception;生成一个新对象
ObjectPool的一个实现就是GenericObjectPool,这个类使用对象工厂PoolableObjectFactory实现对象的生成,失效检查等等功能,以其实现数据库连接工厂PoolableConnectionFactory做以说明,主要方法:
Object makeObject() throws Exception; 使用ConnectionFactory生成新连接
void destroyObject(Object obj) throws Exception;关闭连接
boolean validateObject(Object obj); 验证连接是否有效,如果_validationQuery不空,则使用该属性作为验证连接是否有效的sql语句,查询数据库
void activateOb
您可能关注的文档
- 嘿嘿。.doc
- 国产垃圾影视剧99个必有情节.doc
- 地被植物手册.doc
- 大学体验英语三册翻译.doc
- 大学体验英语(第二版)综合教程3_ 答案.doc
- 大学英语第三册翻译答案3.doc
- 夯实基础的高考复习.doc
- 如何制作鲜榨果汁.doc
- 天天背单词.doc
- 妇产.doc
- 新能源产业2025:技术创新与人才队伍建设创新策略报告.docx
- 2025年新能源行业社会责任与创新法规解读报告.docx
- 2026年中国光伏产业技术创新与2025年光伏与海洋能源应用报告.docx
- 新能源行业标准化建设2025年综合能源服务技术报告.docx
- 2025年能源互联网投资策略报告:技术创新,智慧能源新时代.docx
- 2025年虚拟偶像技术创新与娱乐产业应用报告.docx
- 2025年农村光伏扶贫项目:小型光伏系统应用效果评价报告.docx
- 2025年新能源企业数字化转型政策法规解读报告.docx
- 新能源汽车自动驾驶技术创新与2025年新能源车辆远程监控应用报告.docx
- 2025年新能源行业标准化与技术创新在新能源产业投资中的应用分析报告.docx
最近下载
- 2023年安徽二造《建设工程计量与计价实务(交通运输)》知识点必练100题(含详解).pdf VIP
- 人教版五年级上册《方格图中不规则图形面积估算》数学教案.docx VIP
- 银行应急演练总结(21篇).docx VIP
- 四川润泰特种气体有限公司_企业(供应商版).pptx VIP
- 大模型原理、技术与应用——从GPT到DeepSeek-哈工大.pptx VIP
- 光功率检测报告.doc VIP
- 客运驾驶员安全教育培训考试试题及答案.docx VIP
- 人教版数学五年级上册课本习题全部.docx VIP
- 新改版教科版三年级上册科学全册知识点+实验梳理.pdf
- 【问题解决型QC成果】提高现浇滑模路缘石施工质量一次验收合格率.pdf
原创力文档


文档评论(0)