"New transaction cannot enlist in the specified transaction coordinator"

hello experts!
i have a COM component- an ActiveX DLL that i created in VB. i have one root class object that requires a new transaction, all my other classes require a transaction. my root has methods to create a secondary object, and setAbort and Commit methods that do just that through GetObjectContext. my other classes only toggle the bits by calling the DisableCommit or EnableCommit methods.
i then have an access database program that creates a root object which should start a new transaction and then all my other (secondary) objects get created through that root object, taking part in its transaction.
lately i've been getting an error (source of which is sometimes: Microsoft OLE DB Provider for SQL Server) stating "New transaction cannot enlist in the specified transaction coordinator". i realize that seems to have something to do with my distributed transaction server not being started. but shouldnt it start the server and enlist the transactions as needed? it does actually start the service which i see in my services console and often it'll work the second time after it's started.
other times i get an error on my root.setAbort statement (GetObjectContext.SetAbort) of "object variable or with variable not set". which also seems to point at a problem with the transaction if it has no context. one more clue- there's sometimes a message in my event viewer- "String message: Session idle timeout over, tearing down the session." do i have to give more time for the timeout?
any help on this matter would be greatly appreciated.
veeversAsked:
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.

adatheladCommented:
> "New transaction cannot enlist in the specified transaction coordinator"

You usually get this error in SQL when you are trying to start a distributed transaction between 2 servers and the MS DTC service is not running (Microsoft Distributed Transaction Coordinator). You need to make sure this is running first, it won't auto start when you try to start a distributed transaction if the service is not already running. You should get it to auto start when the OS boots up.
Do this by:
1) Right click the SQL Server icon next to the time in the tray in the bottom right of the screen
2) Goto Open SQL Server Service Manager
3) Change the Services combo to Distributed Transaction Coordinator.
4) Start it and check the "Auto-start service when OS starts" check box
0
veeversAuthor Commented:
thank you for replying. that option is checked in my SQL Server Manager. the access program and dll are on another computer on my network- which then seems to me would use the MSDTC on the local machine. i can set the service there to start automatically (is there any other way besides thru services?) but what i can't understand is that it's been working and then i don't know what i changed but it's creating this error now.
0
adatheladCommented:
It should also be checked on the other computer where the access program and dll are. An alternative way to start the MSDTC service is via the command prompt on the machine by typing:
net start msdtc

This won't auto start the service though, I always do it through the SQL Server Services Manager panel.
Has this other computer been rebooted? If it has and the auto start option was not checksed then this is what may have caused the error.

Is it working now?
0

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
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

veeversAuthor Commented:
the auto start option for my service on my local machine is in the distributed transaction coordinator service properties. i've set it to automatic and it did solve the problem. i was just wondering if there was a reason why it suddenly stopped automatically enlisting it when it was set to manual all along. i appreciate your help. if my problem is solved, i'm happy enough.
0
veeversAuthor Commented:
i thought it solved it but it didn't! i still sometimes get the same errors!!
0
stallionuniCommented:
The solution is as in the following:
1. Stop SQL Server and MSDTC Services on all particpated Servers
2. Start MSDTC Services on each paricipated Server sequentially
3. Start SQL Server Services on each particpated Server in the same sequence.

and dont forget to start your code with:
-------------
Set XACT_ABORT ON
GO
-------------
Let's hope this would resolve ur problem!

0
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
Microsoft SQL Server

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.