Prevent Rollback
581471Apr 16 2013 — edited Feb 26 2020I have a bpel that processes an array in a loop. I have it set up to catch faults within the loop, and send them to an error queue.
At the end of the loop, I throw a fault if there were any faults caught during the loop. A global catch all cathes this fault, or any other unhandled faults, sending the latter to the error queue.
I want to have the instance end in a faulted state, by rethrowing from the global catch all, but this rolls back all the messages that I send to the error queue, as well as any successful processing accomplished in the loop (messages sent to other queues).
So I thought that putting a dehydrate action before the rethrow would commit everything in the instance, and then the rethrow would cause the instance to be faulted. But now the faulted instances get stuck in the Running state, on the dehydrate step.
Is dehydrating taking this long (been over an hour so far)? Or is there something else going on here? Is there a better way to accomplish what I am trying to do here?
Thanks.