hibernate中使用c3p0 导致数据库deadlock
来源:互联网 发布:利用网络云盘涉黄牟利 编辑:程序博客网 时间:2024/06/18 13:39
参考: https://forum.hibernate.org/viewtopic.php?t=947246&highlight=apparent+deadlock+c3p0
1.选择合适的c3p0和hibernate版本
c3p0-0.9.1-pre11.jar
hibernate-3.2.0.ga.jar
2.设置c3p0的属性(不设置任何缓存)
<property name="maxStatements"><value>0</value></property>
<property name="maxStatementsPerConnection"><value>0</value></property>
3.假如你使用的是spring,并通过以下的方式来load你的全局配置文件:
AbstractApplicationContext context = new ClassPathXmlApplicationContext("TestApplicationContext.xml");
context.registerShutdownHook();
在非web应用中优雅地关闭springioc容器。它这里用到的是AbstractApplicationContext,在取得bean后,再执行一个context.registerShutdownHook();
每次加载context的做法相当于每次都生成了一次新的spring容器,在默认单例的情况下,如果不及时关闭context。service所依赖的DAO当中创建的dataSource也一直存在(包括所有的单例情况下所生成的类),从日志看,service事务管辖中的session确实已经关闭,但SessionFactory还是存在的。只有在容器关闭的情况下,并指定了dataSource实例配置中的destroy-method="close",dataSource单例才会被释放。
spring文档当中对生命周期也描述的很清楚。通过DisposableBean或者指定destroy-method都能很好的释放单例对象。
- hibernate中使用c3p0 导致数据库deadlock
- hibernate中使用c3p0 导致数据库deadlock
- hibernate中c3p0的使用
- 在Hibernate中使用C3P0连接池
- 在hibernate中使用c3p0数据源。
- 关于使用Spring导致c3p0数据库死锁问题
- 转载: 关于使用Spring导致c3p0数据库死锁问题 zz
- 关于使用Spring导致c3p0数据库死锁问题
- c3p0-APPARENT DEADLOCK
- C3P0 APPARENT DEADLOCK
- c3p0 报 APPARENT DEADLOCK!!!
- c3p0 APPARENT DEADLOCK问题
- c3p0 -- APPARENT DEADLOCK!!问题
- Hibernate中C3P0配置
- hibernate 使用C3P0数据源
- hibernate使用c3p0数据源
- C3P0错误APPARENT DEADLOCK!!!解决
- c3p0 报错APPARENT DEADLOCK!!!
- MySQL一个索引列最大允许的有效长度,不是列的所有数据都被索引的
- 开发人员一定要加入收藏夹的网站[持续更新]
- PHP工厂模式的好处
- Wholesale Stainless Steel Cutting Rings JR0122
- MySQL一个索引最多有多少个列?真实的测试例子
- hibernate中使用c3p0 导致数据库deadlock
- test
- XSLT 1.0推荐标准摘译(第一部分)
- asp.net学习流程(应该怎样学习asp.net)
- Qt编写的软件在线升级系统(客户端)
- Dtree树型Js控件测试例子
- Servlet 控制会话
- 十个让你变成糟糕的程序员的行为
- iostat来对linux硬盘IO性能进行了解