ode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Steinmetz <thomassteinm...@gmx.de>
Subject Re: Runtime: SEQUENCE and ACTIVITYGUARD
Date Mon, 17 Mar 2008 09:33:25 GMT

Hi,


Matthieu Riou-5 wrote:
> 
>> When terminating the sequence activity, the child, that is in execution
>> at
>> that moment gets terminated as well. All remaining activities are DPEed.
>> What's missing here is to remove the terminated child from the list of
>> remaining child activities before the DPE for those activities is
>> realized.
> 
> I fail to see how that could change anything. The child is terminated
> anyway
> so its outgoing links are set to false already. But it's probably good to
> keep the code sane instead of setting it to false twice, so I'll do the
> change.

If that child is a structured activity, some of the inner activities could
already have been executed successfully, that means, some links were already
set to true.

Also, in ODE, when an activity gets terminated, this activities source links
are set according to their transition conditions. See for example the
termination of a pick activity, that is waiting for an incoming message
(PICK->WAITING->WAITING->onCancel =>  _self.parent.completed(null,
CompensationHandler.emptySet())). There is no differentiation in
ACTIVITYGUARD between successful completion and termination of one activity.
So that may need to be fixed too.


Matthieu Riou-5 wrote:
> 
>> 2. If the links transition conditions get evaluated in the class
>> ACTIVITYGUARD, evaluating a links transition condition may fail.
>> According to the BPEL 2.0 Specification the following should happen (page
>> 107):
>> "If an error occurs while evaluating the transition condition of one of
>> an
>> activity's outgoing links, then all remaining outgoing links with targets
>> within the source activity's enclosing scope MUST NOT have their
>> ransition
>> conditions evaluated and remain in the unset state. However, if the
>> target
>> of a remaining outgoing link is outside the source activity's enclosing
>> scope then the status of the link MUST be set to false."
>> In ACTIVITYGUARD, the remaining links are evaluated according to their
>> transition conditions, while according to the BPEL Specification, these
>> links should be set to false.
>>
> 
> They should be set to false if they don't share the same scope, otherwise
> they should be left unset. Leaving them unset is fairly easy, we just need
> to leave the evaluation loop, but the scope detection would be a bit
> longer.

I think the easiest way would be to just leave those links unset. Instead,
if a scope gets a fault from its child activity, just set the outgoingLinks,
that are not already set, to false.


Matthieu Riou-5 wrote:
> 
> I don't have the bandwidth right now, care to submit a patch?
> 
Unfortunately I don't have much time at hand. Sorry.

Cheers,
Thomas

-- 
View this message in context: http://www.nabble.com/Runtime%3A-SEQUENCE-and-ACTIVITYGUARD-tp16048082p16091072.html
Sent from the Apache Ode Dev mailing list archive at Nabble.com.


Mime
View raw message