The transaction has cancelled. The participant previously
informed the coordinator that it had finished work but could compensate
later if required, so it is now requested to do so.
FaultedException - if the participant was unable to
perform the required compensation action because of an
unrecoverable error. The coordinator is notified of this fault
and as a result will stop resending compensation requests.
SystemException - if the participant was unable to
perform the required compensation action because of a transient
fault. The coordinator is not notified of this fault so it
will retry the compensate request after a suitable timeout.
If the participant enquires as to the status of the transaction it was
registered with and that transaction is no longer available (has rolled
back) then this operation will be invoked by the coordination service.
This has been deprecated since the correct action when a GetStatus request fails
is either to cancel or compensate the participant or to call error. GetStatus
is only dispatched while the participant is completed so cancel will never be
appropriate. compensate is called when the participant is unknown to the
coordinator (it responds to the GetStatus request with an InvalidState fault).
This will only happen if the coordinator crashed after the participant completed
but before the client requested a close/cancel. error is called if any other fault
response is received. So there is no other circumstance in which it would be
appropriate for unknown to be called.