java程序中死锁的解决方案

java程序中死锁的解决方案

    • 问题如下
    • 解决方案

问题如下

java程序中死锁的解决方案_第1张图片

解决方案

1.查看数据库的隔离级别

mysql> select @@tx_isolation;
+-----------------+
| @@tx_isolation  |
+-----------------+
| REPEATABLE-READ |
+-----------------+
1 row in set (0.00 sec)

mysql> 

2.查看当前数据库的线程情况

 show full processlist;

java程序中死锁的解决方案_第2张图片
没看到正在执行慢SQL记录线程,再去查看innodb的事物表INNODB_TRX,看下面是否有正在锁定的事物线程,看看ID是否在show full processlist里面的sleep线程中,如果是,就证明这个sleep的线程事务一直没有commit或者rollback而是卡住了,我们需要手动kill掉。

 SELECT * FROM information_schema.INNODB_TRX\G;

java程序中死锁的解决方案_第3张图片
这里我们需要手动kill掉就可以了

 kill 38523;

你可能感兴趣的:(技术随笔)