Lock wait timeout exceeded; try restarting transaction

2016-08-05 09:21:52 [com.zhishi.common.controller.BaseController]-[ERROR] 
### Error updating database.  Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
### The error may involve com.zhishi.dal.mapper.order.BizOrderMapper.updateByExampleSelective-Inline
### The error occurred while setting parameters
### SQL: update tb_biz_order      SET tid = ?,                       orderNO = ?,                       product_id = ?,                       product_code = ?,                       product_name = ?,                                                   loan_amount = ?,                       loan_limit = ?,                                     sum_amount = ?,                       downpayment_cost = ?,                       service_cost = ?,                       gps_cost = ?,                       mortgage_cost = ?,                       deposit_cost = ?,                       visits_cost = ?,                       total_cost = ?,                       distributor_rebate = ?,                       bank_finance = ?,                       apply_no = ?,                       apply_uid = ?,                       apply_name = ?,                       apply_role_id = ?,                       mortgage_corp_id = ?,                              branch_corp_id = ?,                       be_branch_corp = ?,                       teamleader_id = ?,                       be_teamleader = ?,                       team_id = ?,                       be_team = ?,                                     visit_order = ?,                       order_state = ?,                       loan_state = ?,                       final_amount = ?,                              final_limit = ?,                              create_date = ?,                       update_by = ?,                       update_date = ?,                              version = ?,                       state = ?                     WHERE (  tid = ? )
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
; SQL []; Lock wait timeout exceeded; try restarting transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction

数据锁导致业务功能无法正常执行。

解决方案:

找到对应的锁Thead id ,然后kill掉,再去执行正常的代码逻辑。

SELECT * FROM information_schema.innodb_trx

KILL 11305;	

导致锁的原因可以是代码逻辑有漏洞,同时也适当调试下my.ini的文件配置大小。

【微信公众号里搜索usgrouping】

扫一扫关注公众号,获取软件开发项目实战资讯,避开开发路上的哪些坑,快速进阶成长。

 
成长的乐趣,在于分享!
大龄程序员,一路走来,感慨颇多。闲暇时写写字,希望能给同行人一点帮助。
本文版权归作者growithus和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/growithus/p/11012242.html