The Artima Developer Community
Sponsored Link

.NET Buzz Forum
ES never fully baked - Distributed Transaction Enlistment

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Sam Gentile

Posts: 1605
Nickname: managedcod
Registered: Sep, 2003

Sam Gentile is a Microsoft .NET Consultant who has been working with .NET since the earliest
ES never fully baked - Distributed Transaction Enlistment Posted: Dec 30, 2003 7:50 AM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by Sam Gentile.
Original Post: ES never fully baked - Distributed Transaction Enlistment
Feed Title: Sam Gentile's Blog
Feed URL: http://samgentile.com/blog/Rss.aspx
Feed Description: .NET and Software Development from an experienced perspective - .NET/CLR, Rotor, Interop, MC+/C++, COM+, ES, Mac OS X, Extreme Programming and More!
Latest .NET Buzz Posts
Latest .NET Buzz Posts by Sam Gentile
Latest Posts From Sam Gentile's Blog

Advertisement

I wanted to comment on Robert's posts in a different post. As he notes, we have been doing a lot of work with ES/COM+ on our team as it is the basis of our architecture that I designed. He confirms that you can call a Non-Configured component as long as that class/component has a reference to System.EnterpriseServices in order for the Context (and transaction and activity) to flow. He quotes Tim Ewald's follow-up article, “It is interesting to note that CLR objects behave exactly the opposite of how COM objects behave with respect to COM+ context.”

There's the rub. I grok COM+. Its ES that is fuzzy. As Frans notes in the comments, a lot of ES is very fuzzy and ES transactions are quite a bit slower than in normal transactions and COM+ implemented in C++ or even VB. Also that Microsoft did did a bad job integrating enterprise services in .NET. I agree. The initial part is so deceptly easy as I laid out in these steps. However, that will just give you a base ES object capable of doing distributed transactions. That doesn't mean it will neccessarily work (unless very simple). Things work very strangely in ES like the dual nature of it; it will use DCOM for communication under certain data types and .NET Remoting for others. Guess what? DCOM propogates a transaction context and .NET Remoting doesn't. It turns out to be one big mess and one has to dig in much further than they should have to to make any of it work. Hmm, shades of COM Interop-) I must admit I am starting to have serious reservations about ES usage compared to COM+. In unmanaged COM+ it was a no-brainer when and essentially how to use it. In ES, although it looks easy, the many quirks and flawed implementation give me hesitations. It looks as Microsoft just threw a managed wrapper over COM+ and went on to other things. This is understandable in the amount of work needed for .NET 1.0/1.1 knowing that the whole area of distributed communication was going to be done over in Indigo anyhow (as the genesis of the idea dates back to 1999 according to Don's interview).

We will continue to document the quirks and issues but I am begining to wonder if one just waits for Indigo to do this all right and just use ES only when there is no other way around it (i.e. Distributed TX to two or more RMs).

Robert also points out that Distributed Transaction enlistment can be automatic with the Tx root having declared its intentions for transactions but you can opt out in some method with by setting “Enlist=false” in the connection string. Deriving from ServicedComponent also gives you the capability to control the transaction. The area of Services Without Components is an interesting one but only available in Win2K3 and XP and doesn't help us with some Win2000 servers.

Read: ES never fully baked - Distributed Transaction Enlistment

Topic: Signing your assembly, newbie guide Previous Topic   Next Topic Topic: My First *real* SQL optimization (and some good resources)

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use