C3P0连接池启动时 APPARENT DEADLOCK!!! 错误
2016-06-24 14:37
555 查看
在Windows平台下运行正常的应用部署到Linux服务器上之后,一直报错:com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@bbd1b —APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
查了好多论坛,发现跟iptables规则有很大关系,尝试关闭iptables,确实可以解决这个问题。那么iptables又不能一直关着,除了安全考虑外,还有一些nat和转发要通过iptables来做,所以iptables是必须要开的,那么就要看一下增加什么规则才能解决问题,
下面是我的尝试步骤:
1. 关闭iptables
2. 启动tomcat(deploy应用时会自动启动连接池)
3. 查看mysql进程,连接mysql的地址:localhost
4. 在iptables增加规则:iptables -A INPUT -s 127.0.0.1/32 -jACCEPT 这条规则的意思是:接受源自本机的所有访问,根据我目前的经验来看,没有增加明显的安全隐患;
5. 重新启动iptables
6. 重新启动tomcat,检查日志:发现连接池准备成功,问题被解决。
题外:iptables改完后,原来tomcat无法正常关闭的问题也得到了解决,估计是tomcat访问本机的8005端口时遭到了iptables的阻拦,tomcat等待8005端口的响应超时,导致停止服务失败;
查了好多论坛,发现跟iptables规则有很大关系,尝试关闭iptables,确实可以解决这个问题。那么iptables又不能一直关着,除了安全考虑外,还有一些nat和转发要通过iptables来做,所以iptables是必须要开的,那么就要看一下增加什么规则才能解决问题,
下面是我的尝试步骤:
1. 关闭iptables
2. 启动tomcat(deploy应用时会自动启动连接池)
3. 查看mysql进程,连接mysql的地址:localhost
4. 在iptables增加规则:iptables -A INPUT -s 127.0.0.1/32 -jACCEPT 这条规则的意思是:接受源自本机的所有访问,根据我目前的经验来看,没有增加明显的安全隐患;
5. 重新启动iptables
6. 重新启动tomcat,检查日志:发现连接池准备成功,问题被解决。
题外:iptables改完后,原来tomcat无法正常关闭的问题也得到了解决,估计是tomcat访问本机的8005端口时遭到了iptables的阻拦,tomcat等待8005端口的响应超时,导致停止服务失败;
相关文章推荐
- iOS之正则-NSRegularExpressionOptions
- android-设备信息工具类
- Android应用的闪退(crash)分析
- iOS之GIF动画文件的播放
- Android开发学习之路-Android N新特性-多窗口模式
- php 微信扫码支付几个坑
- genymotion报错 Unable to start VirtualBox部分解决方法
- Android 布局技巧
- iOS 真机 Log日志
- iOS 手机号码和邮箱的验证
- iOS 获取 顶层控制器
- Android:一个TextView分段改变样式、添加监听事件的实现方式(类似朋友圈评论)
- Android app架构经验总结
- Android app1打开app2的实现
- Android5.0报错:java.lang.IllegalArgumentException: Service Intent must be explicit
- android:layout_gravity和android:gravity的区别
- Android 实现“调用手机已安装市场,进行软件评分的功能”
- Android App实现第三方微信登录
- android:windowSoftInputMode属性使用
- [Android]如何修改android模拟器的IMEI号