byungwoojun [http://community.jboss.org/people/byungwoojun] created the 
discussion

"A bug? Ksession.signalEvent and ProcessInstanceWaitingForEvent"

To view the discussion, visit: http://community.jboss.org/message/604557#604557

--------------------------------------------------------------
For the external intermediate event, the jBPM 5 user guide suggested using 
ksession.signalEvent(event, eventData) - BTW, got the ksession from 
JPAKnowledgeService. Then, the jBPM 5 will automatically finds a correct 
process instance to feed the eventData. During some tests, I found that the 
signalEvent using the ProcessInstanceWaitingForEvent NamedQuery does NOT work 
well. For example, I have a process flow with intermediate events. I quickly 
run the process flow multiple times. Then, there will be multiple entries in 
the EventTypes database. What the query does, it joins the EventTypes and the 
ProcessInstanceInfo database tables, returns a list of process ids with the 
same event name. If I ran the process flow three times, the query will return 
three pids. Which one to use? Normally, it uses the first one. In many cases, 
the signalEvent ends up using a wrong pid which does not belong. I experienced 
many problems here. The behaviors were NOT reliable.

To me, it is a bug to me.

If I use the ksession.signalEvent(event, eventData, pid) with the pid (which is 
different from the pid from the startProcess), it works reliably. The problem 
is how to find a proper pid for intermediate message event messaging.

I looked at the EvenTypes database table. It has InstanceID and Element 
columns. Some of the element field data is as follows:

InstanceID              Element
-----------------------------------------------------------------------------------
1356                       processInstanceCompleted:1357
1357                       eventType1

As you can see, the 1356 row points the 1357 row. In my opinion, the proper way 
to find a correct pid is drilling down the chain from the top-level pid which 
is getten from the startProcess. Instead of embedding the next pid part of the 
text data in the Element field, if we have the third column to point the next 
pid, we could use SQL chain query. Using the current schema, I need to get the 
356 instance id, parse the element text (after the colon), then, get the row 
1357 instanceid, so on....

I looked at the 5.1.0.M1 code, but there is no change. So, is it a bug? Or, did 
I miss something here?

bwj
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/604557#604557]

Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to