ITPub博客

首页 > 应用开发 > Java > 查询超时和事务回滚的处理办法

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

原创 Java 作者:我的代码岁月 时间:2020-11-24 09:58:55 0 删除 编辑

低代码开发平台V百科|使用技巧:

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

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

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

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

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

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

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

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

问题解决。

 

事务回滚

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

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

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

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

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

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

例如:

①     保存

②     打开模态窗体

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

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

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

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

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

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

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

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69982242/viewspace-2736306/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 编程小技巧
请登录后发表评论 登录
全部评论
程序开发就是生命的营养剂,网址http://www.yindangu.com

注册时间:2020-08-20

  • 博文量
    183
  • 访问量
    95627