2013-03-10 35 views
0

我已经在前面的question中将“信号中间事件”添加到人类任务中作为边界事件。JBPM - 捕捉中间信号有时会失败

有时信号处理成功,有时有时它是不是。 JBPM运行时只更新process-instance-info,不处理信号。

我使用StatefulKnowledgeSession.signalEvent(),它只是更新ProcessInstanceInfo在后端和事件不会取消正在进行

当前的活动可能是什么问题呢?与此“信号中间事件”相关的任何错误? 。

LOG:

08:34:38955 INFO [标准输出](HTTP - 0.0.0.0-8280-20)2013年3月13日08:34:38954 [HTTP - 0.0.0.0 -8280-20] DEBUG web.mvc.controller.SignalController - 接收到一个新的PROCESS信号..putProcessOnHOLD 08:34:38,966 INFO [stdout](http - 0.0.0.0-8280-20)2013-03-13 08 :34:38,966 [http - 0.0.0.0-8280-20] DEBUG org.drools.container.spring.beans.persistence.DroolsSpringTransactionManager - 当前TX名称(根据TransactionSynchronizationManager):core.service.impl.event.ExternalEventManagerImpl。 dispatchSignal 08:34:38,978 INFO [stdout](http - 0.0.0.0-8280-20)2013-03-13 08:34:38,978 [http - 0.0.0.0-8280-20] DEBUG org.drools。续ainer.spring.beans.persistence.DroolsSpringTransactionManager - 当前TX:o[email protected]3dda5edd 08:34:38,987 INFO [stdout](http - 0.0.0.0-8280-20)Hibernate:select processins0_ .InstanceId如InstanceId1_0_,processins0_.id如id1_0_,processins0_.lastModificationDate如lastModi3_1_0_,processins0_.lastReadDate如lastRead4_1_0_,processins0_.processId如processId1_0_,processins0_.processInstanceByteArray如processI6_1_0_,processins0_.startDate如startDate1_0_,processins0_.state如state1_0_,processins0_.OPTLOCK作为OPTLOCK1_0_来自ProcessInstanceInfo processins0_ where processins0_.InstanceId =? 08:34:39,014 INFO [stdout](http - 0.0.0.0-8280-20)Hibernate:update ProcessInstanceInfo set id =?,lastModificationDate = ?, lastReadDate = ?, processId =?,processInstanceByteArray =?,startDate =? ,状态=?,OPTLOCK =? InstanceId =?和OPTLOCK =?

环境:JBPM 5.4.0.Final时,JBoss 7.1.0.Final

回答

0

当你说的引擎更新ProcessInstanceInfo,我想你指的是最后读取的日期只(如果流程实例没有像预期的那样前进)?还是其他领域呢?

引擎应该以相同的方式处理每个请求。所以我认为流程实例本身可能并不总是处于相同的状态?如果信号例如在人工任务处于活动状态之前或之后到达,则不会对流程实例本身造成任何更改。

+0

人工任务处于相同状态(“保留”/“进行中”)。让我检查是否因为线程为@salaboy暗示 – 2013-03-12 09:59:14

+0

我已更新日志 – 2013-03-13 05:03:58

+0

问题仍然存在。我部署了应用程序在一个干净的环境中。信号使知识会话更新过程实例,但没有别的 – 2013-03-26 12:03:11