VB.NET, COM+, CRM's, and two phase commit

I want to add transactional functionality to an automated extract file loader I am building.  I have built CRM's for the FileSystem, and I believe that SQL and DTS already support this.  To add my service to COM+, is it as simple as saying TransactionOption.Required at the top of the class?  If I call multiple CRM's in the class, are they all convered under the Transaction?  For instance, if I move a file via a FSO CRM, and update the database through the DTS Com interop object, and then call ContextUtil.Abort, will both rollback?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

You need to inherit your class from System.EnterpriseServices.ServicedComponent as well. Then I normally place Transaction(TransactionOption.Required) as an attribute at the top of the class, and I generally specify the COM+ application details in the AssemblyInfo file as:

[assembly: ApplicationName("<<app name>>")]
[assembly: ApplicationID("<<app guid>>")]

Personally, I find the quickest way to generate a GUID to use is SELECT NEWID() in SQL Server, but there are other methods of course. Both the class files and the AssemblyInfo file will need a reference:

Imports System.EnterpriseServices

You might also want to check out the AutoCopmleteAttribute class - you can flag your methods with the [AutoComplete] attribute to have them automatically determine transaction outcome based on the detection of any errors.

In answer to your question about both rolling back, it rather depends on how good your CRM is for the FileSystem. In theory, yes. I'd suggest trying it and seeing.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
platinumbayAuthor Commented:
Does application name point to the Application I am build, or a COM+ application?  Do I need to pre-create the COM+ application first?  Should the GUID point to the GUID of the COM+ application?
Name and GUID are for the COM+ application. You don't need to pre-create it.
Cloud Class® Course: Python 3 Fundamentals

This course will teach participants about installing and configuring Python, syntax, importing, statements, types, strings, booleans, files, lists, tuples, comprehensions, functions, and classes.

platinumbayAuthor Commented:
Sweet!  Last question.  Being in COM+ using CMRs and having the Transaction attributes in the code, is it true XA compliance?
Never looked into compliance - don't know.
platinumbayAuthor Commented:
Post your first response to the other question to get your points.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.