我已将“信号中间事件”添加到人工任务中,作为我之前question中给出的边界事件。
有时信号处理成功,有时 NOT 。 JBPM运行时只更新process-instance-info并且不处理信号。
我正在使用 StatefulKnowledgeSession.signalEvent(),它只是在后端更新ProcessInstanceInfo并且事件不会取消正在进行的当前活动
可能是什么问题?任何与此“信号中间事件”相关的错误?
LOG:
08:34:38,955 INFO [stdout](http - 0.0.0.0-8280-20)2013-03-13 08:34:38,954 [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.container。 spring.beans.persistence.DroolsSpringTransactionManager - 当前TX:org.springframework.transaction.support.DefaultTransactionStatus@3dda5edd 08:34:38,987 INFO [stdout](http - 0.0.0.0-8280-20)Hibernate:选择processins0_.InstanceId作为InstanceId1_0_,processins0_.id作为id1_0_,processins0_.lastModificationDate作为lastModi3_1_0_,processins0_.lastReadDate作为lastRead4_1_0_,processins0_。 processId as processId1_0_,processins0_.processInstanceByteArray as processI6_1_0_,processins0_.startDate as startDate1_0_,processins0_.state as state1_0_,processins0_.OPTLOCK as OPTLOCK1_0_ from ProcessInstanceInfo processins0_ where processins0_.InstanceId =? 08:34:39,014 INFO [stdout](http - 0.0.0.0-8280-20)Hibernate:更新ProcessInstanceInfo set id =?,lastModificationDate =?,lastReadDate = ?, processId = ?, processInstanceByteArray = ?, startDate = ?, state = ?, OPTLOCK =? InstanceId =哪里?和OPTLOCK =?
环境:JBPM 5.4.0.Final,Jboss 7.1.0.Final
答案 0 :(得分:0)
当你说引擎更新ProcessInstanceInfo时,我假设你只是指上一个读取日期(如果流程实例没有按预期向前移动)?还是其他领域?
引擎应该以相同的方式处理每个请求。所以我假设流程实例本身可能并不总是处于相同的状态?例如,如果信号在人工任务处于活动状态之前或之后到达,则不会对流程实例本身进行任何更改。