【线上问题处理】因代码造成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,可以看到 信息还是非常全面的

posted @   方东信  阅读(358)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2013-07-05 ORACLE备份手记
2013-07-05 MySQL事务隔离级别和实现原理(看这一篇文章就够了!)
2013-07-05 MYSQL存储过程事务列子
2013-07-05 写的一个封拆包代码
2012-07-05 sdf
点击右上角即可分享
微信分享提示