oracle怎么deadlock,APPARENT DEADLOCK!!! 错误解决过程

项目环境

数据库:oracle

中间件:WAS

2.  问题描述

2015.05.21(是个好日子),早上发现was后台报错如下:

[15-5-21 7:31:01:171 CST] 00000027 SystemErr     R com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@498e498e -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!

3.问题解决过程

从网上百度下这个错误,分析大致如下:

原因是 hibernate 使用c3p0连接orcale数据后不会释放 , c3p0的最大连接数为100,但显然c3p0有Bug,导致数据库连接池不够用,导致进程锁死。

后换Proxool后,观察正常。

综合参考网站,修改了oracle的连接数如下:

1、修改Oracle最大连接数的方法

a、以sysdba身份登陆PL/SQL 或者 Worksheetb、查询目前连接数show parameter processes;c、更改系统连接数alter system set processes=1000 scope=spfile;d、创建pfilecreate pfile from spfile;e、重启Oracle服务或重启Oracle服务器

修改后,当时报错指向是c3p0的设置参数,没有报APPARENT DEADLOCK!!!错误,但是过了几个小时后开始报APPARENT DEADLOCK!!!错误

联系开发人员开发人员告知:

在\WEB-INF\classes\hibernate.cfg.xml文件中去掉相关配置

spacer.gif

spacer.gif---即将hibernate配置文件中的c3p0配置参数注释掉

重启was ,然后跑个etl任务测试下,没有发现再次报此错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值