mysql transaction time的设置问题 200
mysqltransaction开启后正常更新,网络原因导致commit和rollback都失败,之前更新的数据被锁住了,无法进行更新,只能重启DB,现在考虑的是给tra...
mysql transaction开启后正常更新,网络原因导致commit和rollback都失败,之前更新的数据被锁住了,无法进行更新,只能重启DB,现在考虑的是给transaction 设置timeout,用的是TransactionDefinition设置的timeout,但是没有效果。应该怎么设置transaction的timeout呢?或者有什么其他的解决办法?
想要的效果是即使由于网络问题导致commit和rollback失败,transaction内更新DB导致的锁表能够解锁。 展开
想要的效果是即使由于网络问题导致commit和rollback失败,transaction内更新DB导致的锁表能够解锁。 展开
2个回答
展开全部
设置MySQL的系统参数wait_timeout,当transaction的上一条sql语句的执行到现在如果超出这个值,MySQL就会自动中断transaction
追问
DB更新之后还有很长时间的文件更新操作,在文件更新完成之前transaction是不能提交的,只有文件更新也完成之后才提交之前的DB更新。
所以这个也不好用。因为文件更新有时候会在一个小时以上。
如何能在不改变系统参数wait_timeout的前提下,做到DB的连接断掉一段时间后。
比如说DB连接断开10秒之后,自动中断transaction,但是如果DB连接OK,那transaction还是可以持续下去,好像是28800秒。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询