0

正如我在上一个问题中给出的那样,我已将“信号中间事件”作为边界事件添加到人工任务中。

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

我正在使用StatefulKnowledgeSession.signalEvent(),它只是在后端更新 ProcessInstanceInfo 并且事件不会取消当前正在进行的活动

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

日志:

选择 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_作为 state1_0_。 .OPTLOCK 作为 OPTLOCK1_0_ 来自 ProcessInstanceInfo processins0_ where processins0_.InstanceId=? 08:34:39,014 INFO [stdout] (http--0.0.0.0-8280-20) Hibernate: 更新 ProcessInstanceInfo 设置 id=?, lastModificationDate=?, lastReadDate=?, processId=?, processInstanceByteArray=?, startDate=?,状态=?, OPTLOCK=? 其中 InstanceId=? 和 OPTLOCK=? 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: 更新 ProcessInstanceInfo 设置 id=?, lastModificationDate=?, lastReadDate=?, processId=?, processInstanceByteArray=?, startDate=?,状态=?, OPTLOCK=? 其中 InstanceId=? 和 OPTLOCK=? 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: 更新 ProcessInstanceInfo 设置 id=?, lastModificationDate=?, lastReadDate=?, processId=?, processInstanceByteArray=?, startDate=?,状态=?, OPTLOCK=? 其中 InstanceId=? 和 OPTLOCK=? 0-8280-20) 休眠:更新 ProcessInstanceInfo 设置 id=?, lastModificationDate=?, lastReadDate=?, processId=?, processInstanceByteArray=?, startDate=?, state=?, OPTLOCK=? 其中 InstanceId=? 和 OPTLOCK=? 0-8280-20) 休眠:更新 ProcessInstanceInfo 设置 id=?, lastModificationDate=?, lastReadDate=?, processId=?, processInstanceByteArray=?, startDate=?, state=?, OPTLOCK=? 其中 InstanceId=? 和 OPTLOCK=?

环境:JBPM 5.4.0.Final,Jboss 7.1.0.Final

4

1 回答 1

0

When you say that the engine updates the ProcessInstanceInfo, I assume you are referring to the last read date only (in case the process instance is not moving forward as expected)? Or other fields as well?

The engine should process each request the same way. So I assume that the process instance itself might not always be in the same state? If the signal for example arrives before or after the human task is active, it will not cause any changes to the process instance itself.

于 2013-03-12T01:26:08.890 回答