通过日志看不出来的问题,可以通过看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++框架的所有栈信息.
必要时,查看catalina_xxxx.log的日志
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程序的问题的更多相关文章
-
Linux上从Java程序中调用C函数
原则上来说,"100%纯Java"的解决方法是最好的,但有些情况下必须使用本地方法.特别是在以下三种情况: 需要访问Java平台无法访问的系统特性和设备: 通过基准测试,发现Jav ...
-
linux下分析java程序占用CPU、内存过高
一.CPU过高分析 1)使用TOP命令查看CPU.内存使用状态可以发现CPU占用主要分为两部分,一部分为系统内核空间占用CPU百分比,一部分为用户空间占用CPU百分比.其中CPU状态中标示id的为空闲 ...
-
linux下分析Java程序内存汇总
使用pmap查看进程内存 执行命令 使用pmap能够查看某一个进程(非java的也能够)的内存使用使用情况, 命令格式: pmap 进程id 演示样例说明 比如执行: pmap 12358 显示结果例 ...
-
Android驱动入门-在Android系统上运行JAVA程序
在linux上运行java程序,直接用javac编译,再用java运行就行了.但是在Android上,由于虚拟机和pc端的不同,所以操作方法也是不一样的. 如果想在Android上运行Hello wo ...
-
利用jdk自带的运行监控工具JConsole观察分析Java程序的运行
利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
-
linux(ubuntu) 搭建java程序运行环境
一:简介 ubuntu 系统的和linux差不多,我们需要在系统上搭建java程序运行环境,需要安装jdk,mysql这两个软件,tomcat是绿色版,直接通过taz -zxvf tomcat 就可以 ...
-
Linux下执行Java程序报错
在linux下编译java程序,执行javac编译生成class文件时,在centos7终端输入如,javac hello.java 会提示未找到指令,但用java -verison测试环境变量 ...
-
如何在 Linux 上安装应用程序
如何在 Linux 上安装应用程序 编译自:https://opensource.com/article/18/1/how-install-apps-linux作者: Seth Kenlon原创:LC ...
-
如何使用加多宝(jdb)在linux下调试Java程序
毕业时写了一段时间的C,那时候调试使用gdb,后来转了java,当时就想java程序怎么调试,找了一下,果然,那就是jdk自带的jdb windows里是这样的 Linux下是这样的 一般我在linu ...
随机推荐
-
Python爬虫学习
lxml相关 http://blog.csdn.net/kl28978113/article/details/52241678 lxml安装 http://www.lfd.uci.edu/~gohl ...
-
20145221高其&;20145326蔡馨熠《信息安全系统设计基础》实验二 固件设计
20145221高其&20145326蔡馨熠<信息安全系统设计基础>实验二 固件设计 实验目的与要求 了解多线程程序设计的基本原理,学习 pthread 库函数的使用. 了解在 l ...
-
关于NGUI制作图集在低内存设备上的注意事项
正在写一个游戏.由于2D且比较简单.打算用NGUI全权搞定,对,游戏内容也用NGUI. 想的很好,做的很爽.PC上跑起来happy. 天杀的诺基亚出了个手机叫lumia520,可用内存512M.单个程 ...
-
Vue生命周期-手动挂载理解
改前端遇到个bug,console能够输出值,但是前端不能显示. 我简直一脸懵逼,vue的问题?网络的问题?浏览器的缓存问题? 公司网络,所以直接排除网络问题. 浏览器缓存,试了下确实一定概率可以显示 ...
-
Storm入门(八)Storm实战常见问题总结(持续更新)
一.本地环境log级别设置问题 storm-core-1.1.0.jar下面有个log4j2.xml文件,默认log级别是info. <configuration monitorInterval ...
-
Django项目创建
一.创建方式 1.命令行创建: 2.pycharm创建项目: 二.创建MySQL数据库 三.修改配置文件链接数据库 修改python连接数据库方式 四.Django配置 1.添加app项目 2.修改h ...
-
ExtJS发送POST请求 参数格式为JSON
背景 这要从我比较懒说起.技术框架ExtJS + resteasy,默认请求方式是ajax get,这后台方法就要写很多@QueryParam来获取参数.我比较喜欢前台用ajax post请求,后台方 ...
-
FastAdmin 的 captcha 是如何来的?
FastAdmin 的 captcha 是如何来的? 如何打开 FastAdmin 的验证吗? 文件位置 C:\www\fastadmin\application\config.php 改 login ...
-
C语言问题集
征服C指针:P70#include "stdio.h" char *int_to_str(int int_value){ static char buf[20]; sprintf( ...
-
Ubuntu 硬盘大小扩展
注:途中所有图均为配置好补的截图,部分来自其它网页. 1.选择硬盘(SCSI) 2.点击扩展,在弹出框填写期望的硬盘大小(不能比原硬盘大小容量小) 3.进入虚拟机,安装GParted. 命令:sudo ...