jconsole.exe帮了我的大忙
来源:互联网 发布:mac系统重装u盘 2016 编辑:程序博客网 时间:2024/05/04 12:34
这些天我做的一个系统所在的tomcat总是无征兆的卡住,现象是客户端无法访问此tomcat下的任何工程,包括它自己的manager工程。服务器上的控制台也没有任何异常输出,过一段时间没准自己会好起来,由此推断应该是cpu或者内存满负荷运载了。经过了几天的log调试并未找到问题所在。
后来在网上学会了用jdk的bin目录下的jconsole.exe检测,每当tomcat卡住的时候我就打开jconsole.exe查看线程中的异常,发现每次卡住的时候jconsole很多线程都写着:
“状态:BLOCKED 在 org.apache.commons.dbcp.AbandonedObjectPool@f11de2 上,拥有者: http-8085-17”
我们再去看http-8085-17线程,里面写着:
"状态:BLOCKED 在 oracle.jdbc.driver.T4CConnection@1bcb5be 上,拥有者: http-8085-1"
然后我们在去看http-8085-1线程,里面有很多堆栈信息,从里面找到你熟悉的,比如我的是:
com.changhongit.wchuyun.pages.BasePageWith2FenYe.onSelectedFromQuery(BasePageWith2FenYe.java:259)
com.changhongit.wchuyun.pages.BasePageWith2FenYe.dispatchComponentEvent(BasePageWith2FenYe.java)
com.changhongit.wchuyun.pages.Chuku.dispatchComponentEvent(Chuku.java)
这样一来,一下就锁定到某一个页面了,我打开这个页面挨个情况去测试,发现当筛选条件状态为“异常签收”时执行查询操作就会卡住,貌似此时已经有一个线程被占住了,果然,过一段时间tomcat就卡住了,我推断这就是问题所在,好了。接下来我去优化这部分的sql,编译,测试,上传,搞定。运行了一下午了,再未出现卡住的现象。
结论是:当你遇到一个请求很久都跑不完的时候一定要注意了,因为这时,即使把客户端的网页关掉后台也会占用一个线程。久而久之就会出现tomcat卡住的现象
- jconsole.exe帮了我的大忙
- 大神的错误解释,帮了我一个大忙。
- distinct小可爱的小用法,帮了我大忙
- 小小云课堂,倒是帮了我的大忙
- GDB 找不到源代码【帮了我大忙】
- Linux帮了Windows的大忙
- 以前的注释帮了大忙
- linux vi用法(今天帮了我大忙!!!)
- quartus 无法识别usb blaster确实帮了我大忙
- WInHEX帮了大忙了
- 使用GreenDao,遇到的升级问题。帮了大忙了!
- hibernate的二级缓存(spring) 帮我大忙啦!
- UITableView中的visibleCells的用法(visibleCells帮上大忙了)
- net 2.0 提供的 ftp 类总结 (转很有用的)这次ftp 它帮了我大忙
- 小变量帮大忙
- 每当数据中有'<'、'&'等特殊字符时,封装的XML就无法解析,CDATA属性帮了大忙
- ListView给item其中控件添加监听,在Adapter中添加,不难,你可以的。Context帮大忙了
- 如何用c#读写配置文件,最后一句帮了我大忙!
- Linux下rpm 安装包方式安装
- H.264-AVC视频编码原理及实现(二)
- oracle oms(program)实质为oem相关服务进程
- 执行jar包及在命令行中传递参数
- PHP __autoload()函数(类文件自动加载规则)的使用方法
- jconsole.exe帮了我的大忙
- Unix的控制字符
- 关于二维码的一些基础知识和问题
- 应用程序包的安装
- PO BO VO DTO POJO DAO概念及其作用
- Linux ALSA声卡驱动之七:ASoC架构中的Codec
- jms+spring+activemq配置(发送和接收消息)
- Active Directory系列之一 为什么我们需要域?
- 线程安全退出