PDA

Click to See Complete Forum and Search --> : Debugging COM+ dlls


fiona_conard
Dec 5th, 2001, 07:21 AM
Hi all,

I got two dlls say dllA and dllB. They are set to run in com+. I debug those dlls with a client vb project(exe). First, i opened dllA's project and then opened dllB's project and finally the client vb project. Then i played the three projects. Client VB project calls a method in dllA and then dllA calls a method in dllB.

At the point dllA calls a mehtod in dllB, an error occured:
Automation error
You made a method call on a COM+ component that has a transaction that has already aborted or in the process of aborting.


If i directly run the client vb project with all the dlls run in com+, no error occurs.

Can anyone help? Thanks!

André
Dec 5th, 2001, 01:11 PM
You need to setup the dll's as compatible with the dll's installed in COM+.

You should call your dllB from dllA with objCtx.CreateInstance, not with New nor CreateObject, you need to tell COM+ that you want to call your dll from the same object context as DllA.

Transactions are simulated when you debug, so don't trust them.

Andre

fiona_conard
Dec 5th, 2001, 10:34 PM
Thanks Andr!


The dlls are compatible with the dlls installed in COM+.

In com+, i think it is ok to use create object or new to create instance of classes which located in different dlls.
CreateInstance is only use in MTS, and its existence in COM+ is only for backward compatiability.

André
Dec 6th, 2001, 11:04 AM
Yeah you're right, but I always use it, I guess is habit.

Cheers,

Andre