首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

采取jca分析javacore文件示例

2012-08-27 
采用jca分析javacore文件示例今天帮助项目组分析websphere 7下的线程挂起问题,现象如下:?后台日志抛出类似

采用jca分析javacore文件示例

今天帮助项目组分析websphere 7下的线程挂起问题,现象如下:

?

后台日志抛出类似下面的异常:

线程“WebContainer : 6”(0000001f)已保持活动状态 621077 毫秒,此线程可能已挂起。在服务器中共有 1 个线程可能处于挂起状态。

?

问题分析:

线程或数据库存在锁的现象,决定采用jca分析工具分析javacore文件,看哪个线程有锁。

?

问题排查过程:

websphere服务器端(suse Linux)执行如下命令:

ps -ef|grep java

?

查找webpshere的进程,再调用:

kill -3 pid

?

动态生成一个javacore 文件,比如: /opt/IBM/WebSphere/AppServer1/profiles/AppSrv01目录下的生成了javacore.20120613.084258.15830.0001.txt文件

(此kill命令不会造成在线业务系统停止,应用服务器不需要重新启动)

?

然后采用jca分析工具,我采用的是jca401的版本,进入dos环境,执行:

?java -Xmx200m -jar jca401.jar

?

会打开图形界面,调入javacore文件,进行分析发现有线程处于blocked状态,点击toolbar中的“Thread Detail”图标,能够看到具体的线程状态及明细,定位blocked的线程,查看明细,本例中发现该线程blocked by一个web container线程,该线程的调用堆栈如下:?

?

t oracle/jdbc/driver/OracleStatement.executeQuery(OracleStatement.java:1313(Compiled Code))
at com/ibm/ws/rsadapter/jdbc/WSJdbcStatement.pmiExecuteQuery(WSJdbcStatement.java:1621(Compiled Code))
at com/ibm/ws/rsadapter/jdbc/WSJdbcStatement.executeQuery(WSJdbcStatement.java:925(Compiled Code))
at com/itown/framework/persistence/SingleDBHelper.executeQuery(SingleDBHelper.java:116(Compiled Code))
at com/itown/iesap/dbatch/service/InspFirstTrialSqlSearchService.findExcept(InspFirstTrialSqlSearchService.java:457(Compiled Code))
at com/itown/iesap/dbatch/service/InspFirstTrialSqlSearchService.execute(InspFirstTrialSqlSearchService.java:526(Compiled Code))
at com/itown/iesap/common/BaseService.service(BaseService.java:12(Compiled Code))

?

jca工具截图:?



采取jca分析javacore文件示例
?
?

?

缩小了问题范围,最终得以排查问题。

?

?

热点排行