文档章节

Lock wait timeout exceeded; try restarting......

凯文加内特
 凯文加内特
发布于 2016/06/13 14:48
字数 347
阅读 215
收藏 0

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/

© 著作权归作者所有

共有 人打赏支持
凯文加内特
粉丝 331
博文 667
码字总数 87615
作品 0
青岛
后端工程师
浅析 innodb next-key lock

record lock:记录锁,也就是仅仅锁着单独的一行 gap lock:区间锁,仅仅锁住一个区间(注意这里的区间都是开区间,也就是不包括边界值,至于为什么这么定义?innodb官方定义的) next-key l...

长平狐
2012/11/01
787
0
MYSQL锁等待,死锁

MYSQL一直很稳定,但是突然连接数超出最大连接数,Tomcat报 "Lock wait timeout exceeded; try restarting transaction",把tomcat重启可以恢复正常!! 能分析下这是怎么回事吗?...

李强-北京
2013/05/24
1K
7
MySQL 执行一个很长的 SQL 语句报错 —— Lock wait timeout exceeded

执行一个对数据的操作语句,需要时间很长,可能一个小时。执行报错如下: ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction该怎么调整 MySQL 配置呢?...

华宰
2015/12/05
615
1
mysql事务没有提交导致 锁等待Lock wait timeout exceeded异常

异常:com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction 解决办法: 执行select * from information_schema.......

落雪飞声
09/11
0
0
python爆这个错误,怎么解决??

conn.execute(sql) File "build/bdist.linux-x86_64/egg/MySQLdb/cursors.py", line 174, in execute File "build/bdist.linux-x86_64/egg/MySQLdb/connections.py", line 36, in defaulterr......

sca7
2017/05/26
25
0

没有更多内容

加载失败,请刷新页面

加载更多

Java Lock接口分析之ReentantReadWriteLock

ReentantReadWriteLock读写锁,在读线程多余写线程的并发环境中能体现出优异的性能,相比于synchronized与ReentrantLock这种独占式锁的模型,ReentantReadWriteLock采用独占式写锁与共享式读...

我爱春天的毛毛雨
31分钟前
1
0
EFK (Fluentd ElasticSearch Kibana) 采集nginx日志

本文描述如何通过FEK组合集中化nginx的访问日志。本人更喜欢按顺序来命名,所以使用FEK而不是EFK. 首先在nginx服务器上执行以下操作. 安装ruby http://blog.csdn.net/chenhaifeng2016/artic...

xiaomin0322
32分钟前
1
0
一键下载:将知乎专栏导出成电子书

老是有同学问,学了 Python 基础后不知道可以做点什么来提高。今天就再用个小例子,给大家讲讲,通过 Python 和爬虫,可以完成怎样的小工具。 在知乎上,你一定关注了一些不错的专栏(比如 ...

crossin
41分钟前
2
0
synchronized 之 对象锁 和 类锁

一、synchronized(object) 如果object没有被加锁,则获取object的锁;如果object已经被加锁则等待object的锁被释放。 二、需要加锁的情景 多线程共享同一资源会引起线程安全的情况下,才需要...

MyOldTime
43分钟前
7
0
tomcat 单机/多机 部署多应用

一.单机部署多应用: 1.在 linux 下解压安装两个 tomcat:tomcat1, tomcat2; 2.修改 /etc/profile, 增加 tomcat 环境变量: path 中加上 重新加载配置文件 source /etc/profile 3.修改 tomc...

imbiao
54分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部