c3p0引起的死锁如何解决


本文摘自PHP中文网,作者一个新手,侵删。

代码测试本地无误,于是放到外网服务器测试,出现了这样的错误

1

2

com.mchange.v2.async.ThreadPoolAsynchronousRunner -466510

78 [Timer-18] WARN  com.mchange.v2.async.ThreadPoolAsynchronousRunner  - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@1c17bd4 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!

看到这个头都大了,怎么办呢?为什么出现这样的情况?

我的答案是:

因为数据库的连接数是有限的,每次应用启动C3p0都会占用数据库的连接来填充C3p0的连接池,而当数据库的资源被占光时就会因为无法获得共享资源而报死锁。

更改对应配置文件里面的最大连接数和初始化连接数:

未改前:

1

2

<property name="maxPoolSize" value="100" /> 

<property name="initialPoolSize" value="2" />

修改之后:

1

2

<property name="maxPoolSize" value="1" /> 

<property name="initialPoolSize" value="1" />

重新部署运行,ok!

以上就是c3p0引起的死锁如何解决 的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

mysql与navicat建立连接出现1251错误怎么解决

mysql创建函数出错如何解决

mysql初次不能登录解决方法

mysql索引不生效的解决方法

navicat 10061错误怎么解决

mysql数据库系统特权如何查看?

sql命令查询出现乱码的解决方法详解

mysql无法启动的解决办法示例分享

mysql登录警告问题的解决方法

关于mysql时常闪退的问题解决办法分享(图)

更多相关阅读请进入《c3p0》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...