Please suppose one has a process definition consisting mostly of block
participants such as this:
sequence do
participant a <--- has a persistent effect
participant blah
participant b <--- has a persistent effect depending on a
...
concurrence do
participant yah
participant c <-- throws an exception
participant hohum
end
...
participant final <--- has a persistent effect depending on a
and b
end
Assume that participants a, b and final have significant, persistent
effects upon the system data. E.g., "a" collects an approval from a
user to do something, "b" does that thing, and "final" updates some
kind of log.
At least, that's how it ought to work. Now suppose that participant
"c" blows up--say, it tries to get something from a database that is
unavailable.
My question is, how can I best code either the process definition or
the participants (the latter is to be preferred, I think), to do the
following:
1. We should be able to retry the concurrence containing "c" a few
times. Note that it is probably bad just to retry "c", because when
"c" failed the process probably allowed either "yah" or "hohum" to
"win" the concurrence.
2, If "c" fails on the third attempt, we should roll back the entire
process. That means not just cancelling it, but also invoking some
clean-up partipants that undo the effects of "b" and "a."
Thanks for your continued and very timely support.
Any suggestions will be much appreciated!
Best wishes,
David
--~--~---------~--~----~------------~-------~--~----~
you received this message because you are subscribed to the "ruote users" group.
to post : send email to [email protected]
to unsubscribe : send email to [email protected]
more options : http://groups.google.com/group/openwferu-users?hl=en
-~----------~----~----~----~------~----~------~--~---