码迷,mamicode.com
首页 > 编程语言 > 详细

Linux上分析java程序的问题

时间:2016-08-03 22:15:34      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

通过日志看不出来的问题,可以通过看java的堆栈信息(dump文件)来看出一些端倪。

1. 找java的进程id、jdk/bin的目录

ps -ef | grep java

 

2. cd 到bin的目录,执行jstack命令

./jstack [pid]     需要在catalina_yyyy-MM-dd.log里面看dump信息

./jstack -l -F [pid]  强制打印栈信息,可以在console中看dump信息

参数:

-F   当’jstack [-l] pid’没有相应的时候强制打印栈信息

-l   长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表.

-m 打印java和native c/c++框架的所有栈信息.

 

telnet 命令,查看网络情况

 

2016-08-03 问题: 最后定位到执行SQL时,线程BLOCK在那里不动,数据库连接池也没设置timeout,所以就一直挂在那里不动,后面的日志也打不出。最终发现,是在oracle客户端执行了一条delete语句,没有commit导致。

 

 

下面这篇文章写的可以:

http://loudou.info/blog/2014/03/01/yong-jstack-xian-cheng-ding-wei-chu-ti-yan/

Linux上分析java程序的问题

标签:

原文地址:http://www.cnblogs.com/kevin-yuan/p/5734541.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!