Lock wait timeout exceeded; try restarting......
2016-06-13 00:00
429 查看
摘要: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
mysql异常java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction:
场景:
1.开启事务,更新本地数据库;
2.调用银行接口;
3.等待银行接口返回结果,银行返回成功,则提交事务;银行返回失败,则回滚更新本地数据库事务
异常原因分析:调用银行接口等待时间过长,超过innodb_lock_wait_timeout阀值时,mysql的配置参数innodb_lock_wait_timeout阀值指的是事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败;当等待超过阀值时的情况,当锁等待超过设置时间的时候,就会报如下的错误;
解决办法:
使用如下命令查看等待时间:
show global variables like '%wait%';
查看innodb_lock_wait_timeout的值,如果过小,可以修改,增大其值,命令如下(设置等待时间50秒):
set innodb_lock_wait_timeout=50;
set global innodb_lock_wait_timeout=50;
总结:整个流程设计存在缺陷,很容易产生掉单,个人建议拆分业务,先调用银行接口,银行反馈信息直接告知用户,如果支付失败,提示用户重新支付;如果支付成功后,出现更新数据库操作按钮供用户操作。
参考:http://blog.itpub.net/12679300/viewspace-1418320/
mysql异常java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction:
场景:
1.开启事务,更新本地数据库;
2.调用银行接口;
3.等待银行接口返回结果,银行返回成功,则提交事务;银行返回失败,则回滚更新本地数据库事务
异常原因分析:调用银行接口等待时间过长,超过innodb_lock_wait_timeout阀值时,mysql的配置参数innodb_lock_wait_timeout阀值指的是事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败;当等待超过阀值时的情况,当锁等待超过设置时间的时候,就会报如下的错误;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
解决办法:
使用如下命令查看等待时间:
show global variables like '%wait%';
查看innodb_lock_wait_timeout的值,如果过小,可以修改,增大其值,命令如下(设置等待时间50秒):
set innodb_lock_wait_timeout=50;
set global innodb_lock_wait_timeout=50;
总结:整个流程设计存在缺陷,很容易产生掉单,个人建议拆分业务,先调用银行接口,银行反馈信息直接告知用户,如果支付失败,提示用户重新支付;如果支付成功后,出现更新数据库操作按钮供用户操作。
参考:http://blog.itpub.net/12679300/viewspace-1418320/
相关文章推荐
- 责任链模式(Chain of Responsibility Pattern)
- Django TemplateSyntaxError Could not parse the remainder: '()'
- main方法的参数
- setCentralWidget就可以把Qwidget设置为QMainWindow的主窗口
- 如何在OS X El Captain中配置GLFW和GLEW
- saiku 3.7.4 构建过程
- aiRPC(远程调用工具)
- mybaits-config.xml
- RAID阵列
- Leetcode-11. Container With Most Water
- HDU 1787 GCD Again
- [Hadoop]Hadoop Training Roadmap
- SICP 习题2.17 last-pair 找出表的最后一个值
- hdfs.DFSClient: Failed to close file 解决办法
- svn cleanup failed–previous operation has not finished 解决方法
- solution Of 1106. Lowest Price in Supply Chain (25)
- mybaits中#和$的区别
- aircrack-ng工具学习记录(一)
- Coping with the TCP TIME-WAIT state on busy Linux servers
- TIME-WAIT 快速回收