I worked on this a bit more
(story here)I ended up with a working compensation scenario but the process failed. Trapping the fault according to Fig 7 of the paper
Working with Failure and Exceptions turned off the compensation.
Attached is a self contained project which demonstrates this final state .
File Attachment: File Name:
cancel.zipFile Size: 171171
Note the readme.txt file included.
The problems seem to be:
1. Adding a fault handler to the subprocess around all the compensation and normal flows turns off compensation.
2. Compensation End Events throw to a compensation activity but are not caught