- 浏览: 2244409 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- FileNet相关 (3)
- 应用服务器相关 (22)
- Java综合 (77)
- 持久层 (24)
- struts (11)
- webservice (8)
- 虚拟机 (2)
- 光盘刻录 (0)
- AD及AD集群 (1)
- JS (33)
- F5 (0)
- loadrunner8.1 (0)
- Java 反编译工具 (2)
- DataBase (62)
- ant (1)
- 操作系统 (29)
- 我的任务 (3)
- 平台架构 (16)
- 业务规则引擎 (2)
- 模板 (1)
- EJB (5)
- spring (24)
- CMMI (1)
- 项目管理 (20)
- LDAP (13)
- JMS (10)
- JSP (19)
- JBPM (2)
- web MVC框架设计思想 (2)
- 第三方支付平台 (2)
- BUG管理工具 (1)
- 垃圾站 (2)
- php (1)
- swing (1)
- 书籍 (1)
- QQ qq (2)
- 移动互联网 (26)
- 爱听的歌曲 (0)
- hadoop (4)
- 数据库 (9)
- 设计模式 (1)
- 面试经验只谈 (1)
- 大数据 (9)
- sp (1)
- 缓存数据库 (8)
- storm (2)
- taobao (2)
- 分布式,高并发,大型互联网,负载均衡 (6)
- Apache Ignite (0)
- Docker & K8S (0)
最新评论
-
wangyudong:
新版本 Wisdom RESTClienthttps://gi ...
spring rest mvc使用RestTemplate调用 -
wangyudong:
很多API doc生成工具生成API文档需要引入第三方依赖,重 ...
spring rest mvc使用RestTemplate调用 -
zhaoshijie:
cfying 写道大侠,还是加载了两次,怎么解决啊?求。QQ: ...
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
xinglianxlxl:
对我有用,非常感谢
spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) -
k_caesar:
多谢,学习了
利用maven的resources、filter和profile实现不同环境使用不同配置文件
<property name="unreturnedConnectionTimeout"><value>100</value></property>
<property name="debugUnreturnedConnectionStackTraces"><value>true</value></property>
跟踪 C3p0 连接池连接泄漏
debugUnreturnedConnectionStackTraces、unreturnedConnectionTimeout参数的说明,此篇日志进一步介绍应用这两个参数后的一些经验。
首先,为了跟踪问题,debugUnreturnedConnectionStackTraces参数肯定是设置为true的。下面主要说明 unreturnedConnectionTimeout参数的设置,unreturnedConnectionTimeout参数是在连接被应用程序 checkout后指定时间内未checkin则由连接缓冲池执行kill操作,同时打印堆栈跟踪信息。在我的应用里,maxIdleTime的设置是 120秒,所以,我把unreturnedConnectionTimeout设置成150秒,如果达到最大存活时间后,连接还是不能被连接缓冲池正常关闭,那么肯定出现了连接泄漏,此时,再过30秒后,由连接缓冲池主动执行kill。
通过以上设置后,确实收获了一些成果,通过分析日志,找到了连接泄漏问题代码。异常信息如下:
2011-04-06 15:49:42,599 INFO : com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1395) – Logging the stack trace by which the overdue resource was checked-out.
java.lang.Exception: DEBUG ONLY: Overdue resource check-out stack trace.
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:506)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
at org.hibernate.loader.Loader.doQuery(Loader.java:673)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
at com.leo.dao.XXXDAO.queryXXX(XXXDAO.java:20)
at jsp_servlet._keyareas._country.__taskcdb_add._jspService(__taskcdb_add.java:195)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:416)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:326)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)
at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:526)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:253)
通过堆栈信息,很容易就确认了问题点。这个问题点是由于DAO使用不规范导致的,XXXDAO继承了HibernateDaoSupport,在方法中使用了getHibernateTemplate().getSessionFactory().openSession()获得session,然后通过session.createSQLQuery(),随后却并没有执行session.close()。
关于日志大小:在目前 maxIdleTime=120,maxPoolSize=18,minPoolSize=5,idleConnectionTestPeriod=30 的情况下,日志PatternLayout %d %-5p: %l – %m%n,一天的日志记录情况大约是12M,在硬盘空间允许的情况下建议按天存储日志。
发表评论
-
数据库连接池选型
2014-12-04 18:32 1129关键字:数据库连接池选型 proxool(与spring不太 ... -
Mybatis物理分页插件(目前mybatis下最好的物理分页)
2014-12-03 22:36 45623关键字:Mybatis物理分页插件(目前mybatis下最好的 ... -
atomikos(com.atomikos.icatch.SysException: Error in init(): Log already in use)
2014-10-15 13:12 8447关键字:atomikos(com.atomikos.icatc ... -
mybatis级联查询的两种配置方式(很多人问我,这里给出答案)
2014-08-11 23:39 5020关键字:mybatis级联查询的两种方式 第一种配置方式: ... -
Mybatis 打印SQL(sql)
2014-02-28 13:26 2792关键字:Mybatis 打印SQL(sql) ####### ... -
ibatis泛型dao(spring SqlMapClientTemplate支持)
2011-12-04 21:11 3685关键字:ibatis泛型dao(spring SqlMapC ... -
Hibernate注释大全收藏
2011-06-22 15:00 882关键字:Hibernate注释大全收藏 声明实体Bean ... -
hibernate调用MySql存储过程
2011-06-21 09:38 2564关键字:hibernate调用MySql存储过程 Java ... -
hibernate hql where语句拼接工具类
2011-05-27 01:18 3510附件是:hibernate hql where语句拼接工具类 ... -
Hibernate Mysql注解设置自动增长列
2011-05-08 05:14 10049@Entity @Table(name = "T_P ... -
hibernate二级缓存(包括注解方式)
2011-04-11 20:33 12238二级缓存配置(spring+hibernate) 说明:本人 ... -
Hibernate泛型DAO(结合spring模板支持)
2011-03-31 19:49 965详细介绍 Hibernate 泛 ... -
hibernate注解
2011-03-31 15:35 57附件是hibernate注解相关资料。 -
Eclipse中配置及使用iBATIS插件—ibator
2011-03-17 18:37 3671ibator,大快人心,以下对其配置及使用做个简单介绍. 一 ... -
Hibernate帮助文档及API
2011-03-05 22:16 2077附件是:Hibernate帮助文档及API,欢迎下载学习。 -
如何配置hibernate二级缓存呢?
2011-01-31 17:16 926配置二级缓存网站推荐: http://www.ineeke. ... -
String之HibernateTemplate经典查询
2010-12-08 15:49 1904一、find(String queryString); ... -
Hibernate之Criteria使用经典
2010-12-08 14:32 978创建一个Criteria 实例 org.hibernate. ... -
SchemaExport工具实战(hibernate)
2010-12-05 15:30 1125SchemaExport工具实战 通常我们使用生成数据库架构 ... -
Hibernate条件查询(DetachedCriteria)
2010-11-21 01:28 1750Hibernate条件查询(DetachedCriteria) ...
相关推荐
C3P0连接池参数配置
c3p0连接池jar包
C3P0数据库连接池和jar包,因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉。而每次新建连接都需要140毫秒左右的时间,所以耗费时间比较多。若使用C3P0连接池来池化...
c3p0连接池参数配置
c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包c3p0连接池JAR包
c3p0连接池工具
C3P0数据库连接池jar包和配置文件
c3p0-0.9.2.1.jar&&hibernate-c3p0-4.0.0.Final[1].jar&&mchange-commons-java-0.2.3.4.jar
C3P0连接池配置详解C3P0连接池配置详解C3P0连接池配置详解C3P0连接池配置详解
C3P0连接池
C3P0数据库连接池的源代码
c3p0连接池配置, 个人找了很多资料 都在.txt里面,有项目完整配置,解释,还有一些相关网站资料等
一个spring + c3p0 连接池的例子,通过这个例子可以学习简单的spring配置和c3p0连接池的知识
c3p0连接池配置使用
c3p0连接池连接数据实例和jar包,有详细的实例参考
c3p0连接池jar包,完整数据包。 c3p0与dbcp区别 dbcp没有自动回收空闲连接的功能 c3p0有自动回收空闲连接功能
c3p0连接池以及配置文件
C3P0连接池参数属性配置中的所有属性以及属性值,初学者值得考虑,高手也可以看看,说不定有你不知道的配置属性~~
C3P0:数据库连接池技术 步骤: 1.导入jar包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar 2.定义配置文件 名称:c3p0.properties 或者 c3p0-config.xml 路径:直接将文件放在src目录下即可 3.创建数据库连接池...