02-01-06 10:56 PM
Actually, it's worse than I thought. If I have an Atomic scope with an
Exception handler, I can add the Suspend Shape to the Exception handler
freely. If, however, I add even a simple Group Shape (i.e., it's not limited
to the LR Scope shape like I assumed in my original post), I can't use the
Suspend Shape inside it!
Note that this happens in both Bts2004 Sp1 and Bts2006 beta2, so I assume
it's intentional, I just can't understand the rationale.
The way around this weird behaviour is simple, if un-elegant: create a
second orchestration with a single Suspend Shape, receiving the suspend
message as a parameter. And in the original orchestration, do a Call
Orchestration where the Suspend shape would have been. This solution seems t
o
work fine.
Thanks anyway,
João Martins
"João Martins" wrote:
> Hello again,
>
> I am trying to implement a retry pattern inside a compensation shape, so
> that the compensation code is retried (in a Loop) a specified number of
> times. In every failed attempt at compensation, I suspend the Orchestratio
n
> using the Suspend Shape.
>
> I am implementing the pattern as described here:
> http://biztalkblogs.com/satishv278/...5/12/26/79.aspx
>
> My problem is: I have an Atomic Shape with a compensation block.
> In the compensation block, I can use the Suspend shape. However, if I add
a
> Long Running scope inside the compensation block, BizTalk doesn't allow me
to
> add the Suspend shape inside it.
>
> The documentation says that "You cannot place a Suspend shape inside an
> atomic transaction", but what is not working is adding it in the Long Runn
ing
> Transaction.
>
> What's wrong?
>
> João Martins
>
[ Post a follow-up to this message ]
|