6 Replies Latest reply on Aug 14, 2007 10:52 AM by csouillard

    execution. resume/suspend

    csouillard

      I just commited some changes in ExecutionImpl to implement suspend and resume methods.
      Suspend only set a boolean (isSuspended) to true
      resume set it to false and relaunch the current Node : performAtomicOperation on the current execution :
      performAtomicOperation(new ExecuteNode(this));

      all unit tests succeeds and LinkTest is now working !
      Let me know if this is a bad approach...

      Charles

        • 1. Re: execution. resume/suspend
          tom.baeyens

          i just saw that suspend and resume was implemented in executionimpl to make the link test work

          not the suspend and resume impl that i had in mind.

          imo, suspend should make sure that 1) all tasks related to that exectuion don't show up in task lists and 2) all timers and async messages related to that execution are not executed

          resume should do the reverse.

          i don't think that suspend and resume should have an effect within one tx. so it should not interfere with the propagation or execution.

          • 2. Re: execution. resume/suspend
            csouillard

            I know this implementation is not complete and probably different from the one you expected but it was a good way to shwo you what is needed in Bpel flow executions...
            I am still trying to find a better solution.

            Charles

            • 3. Re: execution. resume/suspend
              tom.baeyens

              yes. that is the spirit.

              I think functionality should move to an execution scope. I want to do a link test myself as well. You don't have to do it, but if we have 2 versions, we can always compare them.

              • 4. Re: execution. resume/suspend
                csouillard

                I just commited a new version of LinkTest without using suspend/resume.
                I just spent many hours going in deep in all of Execution methods to understand which method I had to call (and where)...
                I think the new code is in the line of pvm concepts... What do you think ?

                Charles

                • 5. Re: execution. resume/suspend
                  tom.baeyens

                  good progress.

                  some thoughts:

                  * static methods canExecute, addWaitingActivity and memberFields linkStatusses and waitingExecutions should be moved/created in a FlowScope

                  * i think execution.proceed(); should not be in the abstract activity. as in that case, the child nodes cannot behave as wait states any more

                  * for the sources and target members i create a separate topic. those have to be moved to either the NodeBehaviour (Activity) or we have to extend Node. I'm not yet sure what strategy is best.

                  • 6. Re: execution. resume/suspend
                    csouillard

                    this done now...
                    Can you have a look ?

                    Thanks
                    Charles