【线上问题处理】因代码造成mysql表死锁的问题,如何杀掉对应的进程
同事 代码出了问题
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
try{
//创建订单
agOrderRelationSwjList.forEach(e->{
//如果有记录 则删除原来的
//LambdaQueryWrapper<AgSwjMfiveOrder> queryWrapper = new LambdaQueryWrapper();
//queryWrapper.eq( AgSwjMfiveOrder::getMfiveOrder, order.getOrderCode() ).eq( AgSwjMfiveOrder::getSchemeId,e.getSchemeCode() );
//agSwjMfiveOrderService.remove( queryWrapper);
operationFactory.getOperationService(SwjConstants.SWJ_L).createOrder(order.getOrderCode(),e.getSchemeCode());
});
} catch (Exception e){
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
throw new ServiceException("异常!");
}
上面故障代码里面 执行了删除,为什么导致锁表呢?事务没有提交?事务是自动提交的呀。。。 回头查查代码问题
先处理MYSQL
select * from information_schema.innodb_trx
里面的trx 是没有办法 kill掉的
可以
show engine innodb status
拿到数据 在里面搜对应的trx_id
会找到 可以在 show processlist 中的对应的线程ID,这样就可以 kill
本次故障的事务线程ID 就是194788882,可以看到 信息还是非常全面的
Rust编程语言群 1036955113
java新手自学群 626070845
java/springboot/hadoop/JVM 群 4915800
Hadoop/mongodb(搭建/开发/运维)Q群481975850
GOLang Q1群:6848027
GOLang Q2群:450509103
GOLang Q3群:436173132
GOLang Q4群:141984758
GOLang Q5群:215535604
C/C++/QT群 1414577
单片机嵌入式/电子电路入门群群 306312845
MUD/LIB/交流群 391486684
Electron/koa/Nodejs/express 214737701
大前端群vue/js/ts 165150391
操作系统研发群:15375777
汇编/辅助/破解新手群:755783453
大数据 elasticsearch 群 481975850
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
java新手自学群 626070845
java/springboot/hadoop/JVM 群 4915800
Hadoop/mongodb(搭建/开发/运维)Q群481975850
GOLang Q1群:6848027
GOLang Q2群:450509103
GOLang Q3群:436173132
GOLang Q4群:141984758
GOLang Q5群:215535604
C/C++/QT群 1414577
单片机嵌入式/电子电路入门群群 306312845
MUD/LIB/交流群 391486684
Electron/koa/Nodejs/express 214737701
大前端群vue/js/ts 165150391
操作系统研发群:15375777
汇编/辅助/破解新手群:755783453
大数据 elasticsearch 群 481975850
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。