-
1. Re: atomic operations
tom.baeyens Aug 2, 2007 3:34 AM (in response to tom.baeyens)as long as atomic operations are executed consecutively, they run in a single transaction.
currently there is no way yet to interrupt inbetween two atomic operations and introduce a async continuation. For that to happen we'll introduce configuration parameters like async='true' on the transition and nodes. Those will have to be checked when atomic operations are created right before the performAtomicOperation is called. probably we will have to introduce something extra like performActomicOperationAsync or so. Then depending on the configurations in the process element, either performActomicOperation or performActomicOperationAsync is called. -
2. Re: atomic operations
mvaldes Aug 2, 2007 4:11 AM (in response to tom.baeyens)"tom.baeyens@jboss.com" wrote:
as long as atomic operations are executed consecutively, they run in a single transaction.
Ok but in this case why not just call the perform() method from within either signal and processNodeState methods rather than use the performAtomicOperations method ?
regards,
Miguel -
3. Re: atomic operations
tom.baeyens Aug 2, 2007 4:18 AM (in response to tom.baeyens)because then you would get nested execution again resulting in a big call stack.
calling the performAtomicOperation makes sure that all the atomic operations are executed after each other in a while loop. -
4. Re: atomic operations
mvaldes Aug 2, 2007 4:50 AM (in response to tom.baeyens)I'm probably missing something...
In both cases (if there is no asynchronous continuation between) we could get an transaction time out when associating consequently atomicOperations to one transaction.
So, why delayed execution is useful ?
regards,
Miguel Valdes -
5. Re: atomic operations
mvaldes Aug 2, 2007 10:44 AM (in response to tom.baeyens)Got it, recursive calls to the performAtomicActivity method could end up in a outOfMemory error (for instance when having multiple automatic activities in sequence). Delayed execution is transforming recursive calls into a while loop.
regards
Miguel Valdes