| Author |
BizTalk orchestration it does not rollback
|
|
| ee@ee.demon.co.uk 2006-05-02, 7:17 am |
| I have created a .Net class that uses Enterprise component services to
handle transactions. When I call it from another .Net class with Enterprise
Services transaction control everything works fine.
However when I call it from within a BizTalk orchestration it does not
rollback.
I have used an Atomic scope around then and registered a reference to
Enterprise.Services and the DLL that uses Enterprise.Services. I have also
added a compensation block that contains a rollback for the Atomic
transaction.
I there anything I have missed or could try?
An samples available?
Receive PO
|
Expression Update SQL Via .Net Method call
|
Expression Update SQL Via another .Net Method call
|
Expression Update SQL Via another .Net Method
Causes an exception
|
Compensation
|
Stop
Cheers,
Jim
| |
| Scott Colestock 2006-05-02, 1:17 pm |
| hmmm, the fact that you are mentioning a compensation shape suggests that
perhaps you chose "long running transaction" for your scope -
Scott Colestock
www.traceofthought.net
<ee@ee.demon.co.uk> wrote in message
news:44570326$0$5372$c3e8da3@news.astraweb.com...
>I have created a .Net class that uses Enterprise component services to
> handle transactions. When I call it from another .Net class with
> Enterprise
> Services transaction control everything works fine.
>
> However when I call it from within a BizTalk orchestration it does not
> rollback.
> I have used an Atomic scope around then and registered a reference to
> Enterprise.Services and the DLL that uses Enterprise.Services. I have also
> added a compensation block that contains a rollback for the Atomic
> transaction.
>
> I there anything I have missed or could try?
> An samples available?
>
>
> Receive PO
> |
> Expression Update SQL Via .Net Method call
> |
> Expression Update SQL Via another .Net Method call
> |
> Expression Update SQL Via another .Net Method
> Causes an exception
> |
> Compensation
> |
> Stop
>
>
> Cheers,
>
> Jim
| |
| ee@ee.demon.co.uk 2006-05-02, 7:17 pm |
| Thanks for taking the time to respond.
It is an Atomic transaction. And like I said in works fine calling the .Net
component from another Enterprise Service component with transactions.
Are there any BizTalk examples out there that I can use to compare it to?
Thank,
Jim
| |
| Scott Colestock 2006-05-03, 1:16 am |
|
OK - are you aware that when doing compensation with an atomic scope, the
defined compensation will run only after the transaction commits?
Are you actually seeing your compensation block run, or not?
Did you use "Requires New" or just "requires" or "supports" transaction for
your component?
<ee@ee.demon.co.uk> wrote in message
news:4457ba18$0$6090$c3e8da3@news.astraweb.com...
> Thanks for taking the time to respond.
>
> It is an Atomic transaction. And like I said in works fine calling the
> .Net
> component from another Enterprise Service component with transactions.
>
> Are there any BizTalk examples out there that I can use to compare it to?
>
> Thank,
> Jim
| |
| ee@ee.demon.co.uk 2006-05-04, 7:13 pm |
| Thanks for talking the time to respond.
Sorry it has taken so long for me to respond.
No, you are right the compensation block is NOT executed. An exception is
fired and logged to the event log but the transaction but not automatically
rollback?
How can I get the compensation block to be called?
Regards,
Jim
| |
| ee@ee.demon.co.uk 2006-05-04, 7:13 pm |
|
On 3-May-2006, "Scott Colestock" <scolestock@community.nospam> wrote:
> Did you use "Requires New" or just "requires" or "supports" transaction
> for
> your component?
I used "requires"
Regards,
Jim
|
|
|
|