JBoss Community

StatefulKnowledgeSession signalEvent method

created by Geoff Pole in jBPM - View the full discussion

Hi,

 

Can anyone help me to understand why the signalEvent method on the StatefulKnowledgeSession calls the ProcessInstancesWaitingForEvent query even when I provide the processInstanceId parameter?

 

The ProcessInstancesWaitingForEvent seems to retrieve all workflow instances that are awaititing a particular event.

 

I am seeing this behaviour in the context of this workflow:

 

http://community.jboss.org/servlet/JiveServlet/downloadImage/2-627040-16993/450-205/data-v.0.0.2.jpg

When I start the workflow with process variables that make it take the lower path the workflow begins and waits for the first signal.

       

 



ProcessInstance process = session.startProcess("com.bluecycle.zephyr.workflow.data-v0.0.2", processVariables);

 

At this point I am able to signal the first event and the ProcessInstancesWaitingForEvent is NOT called. The workflow quickly moves and waits for the second signal.

 



session.signalEvent("Signal1", null, process.getId());

 

At this point I can signal the second event which does succeed but this time it appeas to be calling the ProcessInstancesWaitingForEvent query to find all workflows waiting for the signal2 event..

 



session.signalEvent("Signal2", null, process.getId());

 

The time that this takes is directly proportional to the number of workflow instances that I have waiting for the signal2 event.

 

Can anyone help me to understand why ProcessInstancesWaitingForEvent is being called? It seems like this is unnessercary given that I am providing the processInsnanceId. Also I'm not sure why this happens when I signal event 2, but not when I signal event 1.

 

The jbpm versions I have used are the ones bundled in the jbpm 5.10-Final installer download.

 

Thanks very much,

 

Geoff

Reply to this message by going to Community

Start a new discussion in jBPM at Community