0

我使用的是 jbpm 7.37 版本。我们使用的是 wildfly 14.0。服务器在部署war文件后异常给出以下错误:

WARN  [org.jboss.as.ejb3.timer] (EJB default - 2) WFLYEJB0043: A previous execution of timer [id=6
9baf0d9-60b4-4775-982b-bf525682df3d timedObjectId=business-central.business-central.FileSystemDeleteWorker auto-timer?:tru
e persistent?:false timerService=org.jboss.as.ejb3.timerservice.TimerServiceImpl@1ed2f93a initialExpiration=null intervalD
uration(in milli sec)=0 nextExpiration=Thu Apr 08 03:48:00 UTC 2021 timerState=IN_TIMEOUT info=null] is still in progress,
 skipping this overlapping scheduled execution at: Thu Apr 08 03:58:24 UTC 2021.

这个问题的可能根本原因是什么?如何解决这个问题?这个问题最常见于测试环境。请帮助。

注意:我们已经制作了自定义 REST API 并部署在 kie-server.war 文件中。这个问题导致我的 kie-server.war 文件无法进一步使用,因此我们的自定义 api 不可用并导致应用程序关闭。这是我们面临的严重问题。请帮助。

4

1 回答 1

0

部署在 JBoss 进入启动状态之前到期的时间间隔上调度 EJB 计时器。由于 JBoss 在完成部署所有内容之前处于暂停状态,因此计时器可能会在被允许之前触发,因此一旦 JBoss 进入启动状态,您将看到一些警告,表明计时器无法调用,因为 JBoss 没有完成部署一切。

所以这些警告可以忽略。

根本原因:EJB 3.2 规范部分 [13.4.3 Timer Expiration and Timeout Callback Method] 有一段与此主题有些相关:

在容器崩溃或容器关闭的情况下,任何在容器重启前的中间时间内过期的单事件持久计时器都必须在重启时调用相应的超时回调方法。在中间时间过期的任何间隔持久计时器或基于调度的持久计时器必须在重新启动时至少调用一次相应的超时回调方法。

于 2021-04-13T14:44:05.267 回答