java - 代码层面如何解决Lock wait timeout exceeded; try restarting transaction
PHP中文网
PHP中文网 2017-04-18 09:49:38
[Java讨论组]

代码层面如何解决Lock wait timeout exceeded; try restarting transaction

代码如下:

org.springframework.dao.CannotAcquireLockException: 
### Error updating database.  Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
### The error may involve com.alibaba.tboss.dal.mysql.workOrder.mapper.AssetBeanMapperExt.updateByPrimaryKeySelective-Inline
### The error occurred while setting parameters
### SQL: update idc_asset_list      SET sn = ?,                                                                                                           MODIFIER = 'system',                       GMT_MODIFIED = current_timestamp,                                            remark = ?,                                                                        flow_state = ?      where asset_id = ?     and is_deleted = 'n'
### Cause: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
; SQL []; Lock wait timeout exceeded; try restarting transaction; nested exception is java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
黄舟

这个主要还是得看你另外哪个事务太慢,把行锁一直拿着不释放。Spring的@Transactioal注解里面的timeout是可以加长时间的,但最好还是遵循默认的,找出慢的事务,通过各种优化方式解决,比如大事务拆小事务

怪我咯

建议把UPDATE功能拆分,改成先删除再插入,这样会好的多。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号