0

在 Moqui 框架(1.4.1) 中开发应用程序时,出现了一个令人沮丧的关于 bitronix 事务超时的问题。我无法理解发生这种情况的原因,唯一的解决方案是我必须重新启动系统。

我真的很想知道如何解决这个问题。

例外是这样的

异常截图

4

2 回答 2

0

在事务开始的地方设置事务超时。这是在您使用 Moqui 工具(例如服务或屏幕)编写的代码中,或直接使用 Moqui TransactionFacade 或 JTA 接口的 Java/Groovy/etc 代码中。

默认情况下,Moqui 屏幕不会在事务中运行,除非您设置 screen.@begin-transaction 属性来执行此操作。您的问题很可能出在长期运行的服务中,并且默认情况下 Moqui 服务在事务中运行。使用作为事务的服务的 service.@transaction-timeout 属性设置超时。默认情况下,服务使用已经存在的事务(如果有的话),所以这需要在事务实际开始的最外层服务上。

有关服务和事务管理的更多详细信息,请参阅使用 Moqui 制作应用程序一书,可从 moqui.org 下载。

您的代码中可能还有另一个问题,那就是浏览器请求的套接字超时(我在屏幕截图的日志中也看到了这一点)。有一些方法可以解决这个问题,但也有一些你不能轻易控制的事情,比如浏览器超时。对于一个好的 UI,最好不要让你的用户坐下来等待超过典型的 30-60 秒,这种超时开始出现。更改您的代码以在后台运行,并在需要时在屏幕上添加一些内容以监控作业的状态和/或进度。

于 2014-09-17T14:18:16.447 回答
0

如果您使用 java -jar load 命令加载大文件,您可以使用 timeout 参数将超时时间(以秒为单位)设置为 3600,因为默认值为 600 秒。

有关加载命令参数的更多信息,请参见:

java -jar moqui.war help 
于 2020-08-20T01:16:44.817 回答