Hi folks,

> When implementing the MixedOutcome
coordination type there is a requirement to identify the important(critical) participants so that if one fails the whole business Activity is effected and the other participants should be sent with the "Compensate" message.

Exactly.

> We thought of giving that responsibility to the
user through an interface but have a vague idea of how to identify those participants.

Simply don't.
The decision whether the business goals can be reached with the COMPLETED participants can only be made by the business logic, be it a user or whatever else. The WS-BA implementation needs to offer the business logic an interface to communicate what it expects the transactional layer to do next, nothing more. (See my short description of the "WS-BusinessActivity-Initiator" protocol extension in an earlier post. It defines such an interface as an extension to WSBA, where the initiator [business logic | human] registers themselves as a participant with a special protocol.)


The other problems that needs support are the meaning of Cancel (When coordinator send a cancel message what does the participant have to do, Other than sending the cancelled message?)

Well, cancel all outstanding processes and make sure that everything is "safe". e.g. when booking a hotel room, the hotel web service must cancel the reservation (reservation process) upon receipt of "Cancel" before reporting canceled. Note that there is a race condition built into the protocol, as the participant could report "Completed" before the Cancel command reaches it.


> Is it possible to handle it
like "abort"  in Atomic transactions?
> And the "Exit" message if an exit
> message received by the coordinator is there anything to be done other
> than sending "Exited"?

Georg and I were also unsure how Cancel and Exit would affect atomic outcome. Thomas Freund from IBM clarified that for us by defining that "Exit" may be seen as "Read-only". "Canceled" could be treated as Read-Only in WS-AT speak, but that may depend on the actual application.


If an important participant exit in the middle of it's processing what has to be done by the coordinator?

The coordinator does not know whether the participant is important, all participants look the same to it. When a participant Exits, it has not performed any work and appears similarily as if the business logic had canceled the participant.

In either case, the participant never reported Completed so the application needs to check if it can reach the business goal with the remaining participants.


Georg and I put a Swing demo application together that allows you to rent cars with a demo web service. The application does not contain business logic, but provides the buttons "Complete", "Cancel", "Close", "Compensate" to the user. The user selects any number of participants, then the message and the coordinator sends the selected message to them. (Its a bit more complicated since both the coordinator and the participant ensure that the selected message is applicable in the current state, but more or less it's that. It is exactly what I would expect from a WS-BA coordinator.)

It will be available in the upcoming WS-BA enabling patch against Kandula. We're still working on the docs...


Best regards,

        -hannes

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to