通过jstack可快速检查线程的死锁信息,用法如下: # 获取JVM ID(JAVA 进程ID),通过参数lv可以获取更详细的JAVA方法调用信息 jps -lv # 得到JVM ID后,执行jstack命令,这里假定为123 # 将结果重定向到文件,更便于查看 jstack -l 123 >> d:/123.txt 1 2 3 4 5 翻到页底,可发现明显的死锁信息: Java stack information for the threads listed above: =========…
public class DeadLock { public static void main(final String[] args) throws Exception { final Object lock1 = new Object(); final Object lock2 = new Object(); Thread.currentThread().setName("main-thread"); final Thread r = new Thread("anothe…
SQL中如何检查死锁 编写人:CC阿爸 2014-6-15 在日常SQL数据库的操作中,SQL偶尔会出现表被死锁的问题.比如: 在执行事务时,突然中止事务.系统肯定会锁表. 大批量数据操作时,由于网络 机器性能等相关因素,都会偶尔引起死锁. 这也是SQL没有oracle强大的功能之一. select 标志='死锁的进程', spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran, status,hostname,program…
一.数据库死锁的现象程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错.二.死锁的原理当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错.三.死锁的定位方法通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台.1)用dba用户执行以下语句select username,lockwait,status,machin…
此文为转载文章,描述的很好,没有验证过. 最近遇到了一个看上去很奇怪,分析起来很有意思的死锁问题.这个死锁看上去难以理解.而分析过程中,又使用了很多分析SQL Server死锁的典型方法.记录下来整个分析过程还是很有意义的. 问题重现步骤: 经过提炼,问题重现的步骤非常简单,在SQL 2008上可以很容易地重现. 1.         首先,创建一张表格,上面有一个clustered index,两个non-clustered index. create table tt(id int iden…
利用sys.sysprocesses SQL进程检查是否出现死锁和阻塞 Sys.SysProcesses 系统表是一个很重要的系统视图,主要用来定位与解决Sql Server的阻塞和死锁 select * from sys.sysprocesses      查看sql进程详细信息 select * from sys.syslockinfo          查看被锁住的对象 查看死锁进程 select spid, blocked, loginame, last_batch, status, c…
---------------------------------进程情况1----------------------- --得到SPID if object_id('tempdb..#info') is not null drop table #info select distinct spid ,hostname ,db_name(dbid) as dbname ,net_address,loginame,rtrim(program_name) program_name ,cmd , th…
案例: public class App { public static void main( String[] args ) { int a = 0; while (a < 100) { a *= 10; } } } 把上述代码放到项目中,打成jar包,然后丢到服务器上,使用java -jar xxx.jar命令运行jar包: 使用 top -c  查看cpu情况: 使用 top -Hp 126018 查看一个进程的线程运行信息列表,可按下P,进程按照cpu使用率排序 上图pid是十进制的数据…
一.介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式: 命令格式 jstack [-l] pid 主要分为两个功能: a.  针对活着的进程做本地的或远程的线程dump: b.  针对core文件做线程dump. jstack用于生成java虚拟机当前时刻的线程快照.线程快…