在Moqui框架(1.4.1)中开发应用程序时,会出现关于bitronix事务超时的令人沮丧的问题。我无法理解为什么会发生这种情况,唯一的解决办法是我必须重新启动系统。
我真的很想知道如何纠正这个问题。
例外是这样的
答案 0 :(得分:0)
设置事务超时是在事务开始的地方完成的。这是使用Moqui工具编写的代码,例如服务或屏幕,或直接使用Moqui TransactionFacade或JTA接口的Java / Groovy / etc代码。
默认情况下,除非您设置了屏幕。@ begin-transaction属性,否则Moqui屏幕不会在事务中运行。很可能你的问题在于长期运行的服务,默认情况下,Moqui服务是在事务中运行的。使用服务生成的服务。@ transaction-timeout属性设置超时。默认情况下,服务使用已存在的事务(如果有),因此需要在事务实际开始的最外层服务上。
有关服务和交易管理的更多详细信息,请参阅“使用Moqui制作应用程序”一书,可从moqui.org下载。
您的代码中可能有另一个问题,即浏览器请求的套接字超时(我在屏幕截图的日志中也看到了这一点)。有一些方法可以解决这个问题,但也有一些你无法控制的事情就像浏览器超时一样。对于一个好的用户界面,最好不要让你的用户坐下来等待超过这些超时开始击中的典型30-60。将代码更改为在后台运行,如果需要,可在屏幕上添加一些内容以监控作业的状态和/或进度。
答案 1 :(得分:0)
如果使用java -jar load命令加载大文件,则可以使用timeout参数将以秒为单位的超时设置为3600,因为默认值为600秒。
有关装入命令参数的更多信息:
java -jar moqui.war help