mysql事物超时回滚_查询超时和事务回滚的处理办法

顾名思义,就是在查询程序中,当查询超过了规定的时间,设备仍未就绪时,就引发超时错误。简单理解,就是查询的时间太长了。

如在日志里看到报错信息为 Statement cancelled due to timeout or client request.

那么您就遇到查询超时错误了。

7650b63a6bf1255bc66a49aac01f1fa0.png

解决办法也很简单,就是在控制台的配置管理里,修改一个参数。

登录控制台 http://IP:port/system/console,系统维护-配置管理。

f77e6d3c6f9d26f29d2ff1c33c1f3120.png

点击“com.toone.v3.platform-01core”,

找到“statementTimeout  单一SQL语句(批处理)的最大执行时间,单位(秒),默认是30”这一项,修改用户值,增大SQL语句的执行时间。

e6a905b45d7104bdef7b44550c9be0fc.png

修改完成后保存,然后重启服务。

问题解决。

事务回滚

事务:是一组组合成逻辑工作单元的操作,虽然系统中可能会出错,但事务将控制和维护事务中每个操作的一致性和完整性。

事务回滚:举个最简单的例子,比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除某个部门的时候,默认删除对应的成员。

但是在执行的时候可能会出现这种情况,我们先删除部门,再删除成员,但是部门删除成功了,删除成员的时候出异常了。

这时候就回滚了,成员删除失败了,之前删除的部门也取消删除。

初步了解了事务和事务回滚之后,我们来看出现的问题。

16d1f73a3f7004e6b9041d1b84b26b3a.png

原因:在两个有事务规则间配置了打开规则,打开规则会阻塞后续逻辑执行,停顿一段时间后,执行后续规则提交事务,这时后台事务超时早已回滚,导致前端报错。

例如:

①     保存

②     打开模态窗体

③     其他与写数据库相关的逻辑

如果在②模态窗体长时间停留,就可能导致事务回滚,也就是①保存的数据会失效。

解决方案:这个需要调整配置,不要在事务规则间配置打开规则。

规则链:A事务-B事务-打开模态窗体,可以。

规则链:打开模态窗体-A事务-B事务,可以。

规则链:A事务-打开模态窗体-B事务,不可以。

那么,哪些是属于事务规则呢,我们也帮您标记了,在新增规则时,可以看到,有蓝色标记的规则,都是事务规则。

beb0072305083cfb95c91539d4f0b1fe.png

这样,大家在配置规则链的时候,只要注意到这个场景,就不会再遇到事务回滚的问题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值