.comment-link {margin-left:.6em;}

Ben Cops

Thursday, June 17, 2004

DTC Transactions from BizTalk 2004

DTC Transactions from BizTalk - this is a hot topic. Nobody blogging on this seems to have run a quick test on this yet?
Anyway, a colleague did the other day - it turns out that if you use a serviced component set to "supports" or "requires transactions" in an atomic scope with a send shape, the work the component does is enlisted in the DTC transaction that inserts the message into the message box.
Correspondingly, if its set to "requires new", its not enlisted in that transaction.

What does this mean? Well for a start, when you send the message, although control will pass to the next shape in the scope as if the message has been sent, the message won't have been sent. Remember that a send shape doesn't really put the message on whatever transport you're targeting through your port, it just puts it in the message box and marks it for the port specified in the orchestration and its bindings. Later on, the subscriber (the send pipeline), picks up the message and forwards it on. You can see this in those "transport ID" tags in BTSSubscriptionViewer.exe. So if you do this put inside a running DTC transaction, the message will have been written but not committed to the message box (which is, of course, simply a SQL Server database). Only when the scope shape is finished can the message be committed to the database. This is the point at which the message is picked up by the send pipeline, and handed to the adapter specified by your physical port, which puts it on the target transport.

So don't try listening for a reply in an atomic scope shape.

27 Comments:

  • Hi neighbor just a note to say I saw your blog and found it interesting. So if you have the time check mine out and say Hi neighbor. Also would like to exchange some links.
    Thanks

    By Anonymous Anonymous, at 3:00 pm  

  • VM4JKo The best blog you have!

    By Anonymous Anonymous, at 10:46 am  

  • z0Sq5B Magnific!

    By Anonymous Anonymous, at 5:40 pm  

  • Thanks to author.

    By Anonymous Anonymous, at 6:30 pm  

  • Thanks to author.

    By Anonymous Anonymous, at 7:13 pm  

  • Hello all!

    By Anonymous Anonymous, at 8:19 pm  

  • Nice Article.

    By Anonymous Anonymous, at 9:20 pm  

  • Please write anything else!

    By Anonymous Anonymous, at 10:52 am  

  • Thanks to author.

    By Anonymous Anonymous, at 3:30 pm  

  • Thanks to author.

    By Anonymous Anonymous, at 4:31 pm  

  • Nice Article.

    By Anonymous Anonymous, at 5:31 pm  

  • Hello all!

    By Anonymous Anonymous, at 6:17 pm  

  • JIWSzk write more, thanks.

    By Anonymous Anonymous, at 7:29 pm  

  • actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

    By Anonymous Anonymous, at 4:02 am  

  • Thanks to author.

    By Anonymous Anonymous, at 4:36 am  

  • Please write anything else!

    By Anonymous Anonymous, at 6:26 am  

  • Magnific!

    By Anonymous Anonymous, at 7:01 am  

  • Wonderful blog.

    By Anonymous Anonymous, at 7:34 am  

  • Hello all!

    By Anonymous Anonymous, at 8:01 am  

  • actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.

    By Anonymous Anonymous, at 9:04 am  

  • Please write anything else!

    By Anonymous Anonymous, at 9:43 am  

  • Nice Article.

    By Anonymous Anonymous, at 10:28 am  

  • Magnific!

    By Anonymous Anonymous, at 11:33 am  

  • Lottery: A tax on people who are bad at math.

    By Anonymous Anonymous, at 12:05 pm  

  • The gene pool could use a little chlorine.

    By Anonymous Anonymous, at 12:42 pm  

  • 640K ought to be enough for anybody. - Bill Gates 81

    By Anonymous Anonymous, at 1:19 pm  

  • Give me ambiguity or give me something else.

    By Anonymous Anonymous, at 1:47 pm  

Post a Comment

<< Home