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.