|
Home > Archive > BizTalk Server Orchestration > September 2005 > Rollback in long-running transactions
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Rollback in long-running transactions
|
|
|
| Hi!
I have a general question about long-running transactions. In case something
goes wrong and there is no exception handler or compensation block, what
happens with the committed operations? Are they rolled back? What happens
with the operations not yet committed? If there is an exception handler but
no compensation block, how does it change the situation?
I tried to find an article about these issues but found no satisfactory one.
There is a lot about atomic transactions but not much about long-running. Or
maybe you know a good site or a good article about this?
Thanx!
//theo
| |
| Tomas Restrepo \(MVP\) 2005-09-30, 5:53 pm |
| Theo,
> I have a general question about long-running transactions. In case
> something
> goes wrong and there is no exception handler or compensation block, what
> happens with the committed operations? Are they rolled back? What happens
> with the operations not yet committed? If there is an exception handler
> but
> no compensation block, how does it change the situation?
No, they are not rolled back (there is no transaction coordinator behind
that works as DTC transaction does. If you are using long running
transactions, you *need* to write compensating actions to undo them in case
of failure. That's the whole poing.
The exception handler itself might let the process keep running, but usually
what you want to do is from the exception handler use the Compensate shape
to trigger compensation blocks for specific scopes, thus undoing the
transaction.
--
Tomas Restrepo
tomasr@mvps.org
http://www.winterdom.com/
| |
|
| Thanks, now it's clear!
"Tomas Restrepo (MVP)" wrote:
> Theo,
>
>
> No, they are not rolled back (there is no transaction coordinator behind
> that works as DTC transaction does. If you are using long running
> transactions, you *need* to write compensating actions to undo them in case
> of failure. That's the whole poing.
>
> The exception handler itself might let the process keep running, but usually
> what you want to do is from the exception handler use the Compensate shape
> to trigger compensation blocks for specific scopes, thus undoing the
> transaction.
>
>
> --
> Tomas Restrepo
> tomasr@mvps.org
> http://www.winterdom.com/
>
>
>
|
|
|
|
|