I have the same problem with a similar small fork- join- process. 

<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="SimpleFork">
  |     <start-state name="start-state1">
  |             <transition to="fork1"></transition>
  |     </start-state>
  |     <fork name="fork1">
  |             <transition to="node1"></transition>
  |             <transition to="node2" name="to node2"></transition>
  |     </fork>
  |     <node name="node1" async="true">
  |              <action name="action" 
class="com.sample.action.ContinueActionHandler">
  |             <message>In Node 1</message>
  |          </action>
  |             <transition to="join1" name="to join1"></transition>
  |     </node>
  |     <node name="node2" async="true">
  |              <action name="action" 
class="com.sample.action.ContinueActionHandler">
  |             <message>In Node 2</message>
  |          </action>
  |             <transition to="join1" name="to join1"></transition>
  |     </node>
  |     <join name="join1">
  |             <transition to="node3"></transition>
  |     </join>
  |     <node name="node3">
  |              <action name="action" 
class="com.sample.action.ContinueActionHandler" async="false">
  |             <message>In Node 3</message>
  |          </action>
  |             <transition to="end-state1" name="to end-state1"></transition>
  |     </node>
  |     <end-state name="end-state1"></end-state>
  | </process-definition>
  | 

StaleObjectStateException: Row was updated or deleted by another transaction 
(or unsaved-value mapping was incorrect): 
[org.jbpm.context.exe.ContextInstance#275]
  | 

My example uses a simple actionhandler instead of the scripting you use, but 
that should not matter. 

public class ContinueActionHandler implements ActionHandler {
  |     private static final long serialVersionUID = 1L;
  |     String message;
  |     
  |     public void execute(ExecutionContext context) throws Exception {
  |             context.getContextInstance().setVariable("message", message);
  |             System.out.println("In Message: "+ message);
  |             if("In Node 1".equals(message)) {
  |                     this.spendSomeTime();
  |                     System.out.println("After spent some time: "+ message);
  |             }
  |             System.out.println("Before leaving: "+ message);
  |             context.leaveNode();
  |     }
  |     private void spendSomeTime() {
  |             for(int i=0; i< 2000000;i++) {
  |                     String dd = "do something";
  |             }
  |     }
  | }
  | 
In my opinion this problem is an essential one, because using async- nodes in 
fork- join should be AFAIK the way to execute actions asynchronously.

I started using jBPM a year ago with version 3.2.1 (AS 4.2.1) implementing a 
non interactive  workflow executing several activities. I had problems with 
parallel executions and implemented a custom fork- join mechanism as a 
workaround. (I assumed I did not understand jBPM correctly especially because 
the suite was delivered with AS 4.0). Unfortunately my solution is neither 
compatible with 3.2.2 nor with 3.2.3, because the behaviour of the standard 
join- node was modified.
Now our workflow implementation has to be extended and I want to refactor the 
code using only standards. 

I started tests with a small process as you did and installed it in a new clean 
environment:  I use a customized enterprise- ear delivered with 
jbpm-jpdl-3.2.3, a fresh installed jboss 4.2.3 GA server and a new schema on a 
Oracle xe database. (The same error I got using the hsql- database configured 
in the Jboss- server of the jpdl- suite) 

Unfortunately I did not find any jpdl- example describing the scenario. The 
chapters in manuals about 'Asynchronous continuations'  are a little bit vague. 
Similar scenarios use a node and a task inside the different execution pathes.
I wonder if nobody uses parallel executions in background or if there is 
another standard way to solve this with jBPM.
 
Has anybody experiences with those items or any idea ? If you want to know more 
about my environment, I would like to send my configuration files.

Thanks in advance 

Rainer



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4177847#4177847

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4177847
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to