利用 aop 追踪 数据库连接池使用情况

问题描述

最近一个项目中使用了apache的dbcp 作数据库连接池,最近程序老发现报连接池耗尽。仔细查了代码,没有找到问题。所以想利用 aop 技术确定一下程序中是否有未释放的连接。想法是 看分配的连接和释放的连接是否对等。定义了两个切入点 1、execution(java.sql.Connection javax.sql.DataSource.getConnection()) 2、 execution(void java.sql.Connection.close())程序运行时 第二个切入点 没有生效。请较一下aop的高手,是切入点不对?或者有别的什么更好的办法来追踪吗?

解决方案

http://www.iteye.com/problems/873以前解决的一个问题,不知道对你有没有帮助。而且“问题答案可能在这里”有这个链接了。

时间: 2024-10-29 17:26:19

利用 aop 追踪 数据库连接池使用情况的相关文章

基于JDBC的数据库连接池技术研究与设计

设计|数据|数据库|数据库连接 摘 要 本文介绍了基于JDBC的数据库连接池的工作原理,阐述了连接池技术的事务处理.多数据库服务器等各项关键技术,提出了一个高效的连接池管理策略,最后详细说明了数据库连接池应用的具体实现过程. 关键词 JDBC; 数据库; 连接池; 事务处理 随着信息技术的高速发展与广泛应用,数据库技术在信息技术领域中的位置越来越重要,尤其是网络应用和电子商务的迅速发展,都需要数据库技术支持动态Web站点的运行,而传统的开发模式是:首先在主程序(如Servlet.Beans)中建

璧说:从数据库连接池说起

该文章来自于阿里巴巴技术协会(ATA)精选文章. 这次我们来聊聊数据库的连接, 因为我觉得这是蛮有内容且蛮重要的一部分内容.首先会从单个的连接池讲起,重点考察下单连接池和数据库的交互情况, 然后探讨下大规模集群下数据库连接会遇到的问题,以及对应的解法. 首先什么是连接池,出现的原因是啥?我们可以从一个标准SQL的生命周期说起, 如果一个SQL要到DB上去执行, 那么首先要建立应用服务器和数据库的一个连接状态,连接建立后数据库会分配一个线程或者进程来调度,完成解析并生成执行计划,然后才进入执行阶段

Java数据库连接池比较(c3p0,dbcp,proxool和BoneCP)

Java框架数据库连接池比较(c3p0,dbcp和proxool,BoneC) 现在常用的开源数据连接池主要有c3p0,dbcp,proxool,BoneCP,其中: ¨         hibernate开发组推荐使用c3p0; ¨         spring开发组推荐使用dbcp (dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect ,告诉连接被重置,这个设置可以解决); ¨         hibernate in action推荐使

数据库连接池clearpool(java实现)详解

clearpool的maven项目托管在https://github.com/xionghuiCoder/clearpool,同时也可以在http://www.oschina.net/p/clearpool上了解它的简单介绍. 首先大家可能会问,现在开源社区已经有了很多数据库连接池:c3p0.proxool.dbcp.bonecp.druid和tomcat_jdbc等,我们还需要重新发明轮子么?是的,上面这些连接池都非常优秀,并且都有自己优点:比如高并发时druid和tomcat_jdbc近乎完

【最近面试遇到的一些问题】数据库连接池的优点和原理,常用的java开源连接池组件

数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正是针对这个问题提出来的.数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏.这项技术能明显提高对数据库操作的性能. 影响因素 数据库连接池在初始化时将创建一定数量的数据

数据库连接池的原理

对于共享资源,有一个很著名的设计模式:资源池(resource pool).该模式正是为解决资源频繁分配.释放所造成的问题.数据库连接池的基本思想就是为数据库连接建立一个"缓冲池".预先在缓冲池中放入一定数量 的连接,当需要建立数据库连接时,只需要从缓冲池中取出一个了,使用完毕后再放回去.我们可以通过设定连接池最大数来防止系统无尽的与数据库连接.更为重 要的是我们可以通过连接池的管理机制监视数据库连接使用数量,使用情况,为系统开发,测试以及性能调整提供依据. 连接池的相关问题分析: 1

PHP没有数据库连接池怎么破?PHP环境下使用Nginx ngx

线上运行了一套辅助系统是利用了开源的PHP改的,之前也没怎么玩过PHP,没想到这玩意儿还是有不少坑的.突然某一天一个用户做线上活动推广,然后短时间内涌进来了上万的请求,然后数据库连接耗尽,短时间内几乎拖垮了整个系统.导致系统奔溃的有多方面原因,今天主要针对PHP没有数据库连接池的原因来分析. 在PHP里,数据库连接在请求到达时建立,请求结束时释放.如果同时几千个请求到达,那就同时会建立几千个数据库连接,非常恐怖.而且PHP木有比较好的数据库连接池驱动方案,所以我们得另想办法. 解决这种问题有三种

如何给 Log4j 配上数据库连接池

数据|数据库|数据库连接 我们都知道log4j是一个优秀的开源日志记录项目,我们不仅可以对输出的日志的格式自定义,还可以自己定义日志输出的目的地,比如:屏幕,文本文件,数据库,甚至能通过socket输出. 现在让我们对日志输出到数据库来进行配置 配置如下: #---JDBC ---输出到数据库 # JDBCAppender log4j.properties file #log4j.rootCategory=WARN,JDBC # APPENDER JDBC log4j.appender.JDBC

基于JDBC的数据库连接池技术研究与应用

数据|数据库|数据库连接 摘 要 本文介绍了Java访问数据库的原理及其存在的问题,提出了解决办法-数据库连接池,并对其关键问题进行了分析,构建了一个简便易用的连接池并结合当前热门技术Servlet说明了其如何在开发时使用. 关键词 JDBC,Jsp/Servlet,数据库连接池,多数据库服务器和多用户,多线程 引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用.基于B/S(Browser/Server