I have a VB6 dll that lives in MTS that imports 30k records using ADO
2.0 SQL Server 6.5. It does 100 at a time inside a transaction,
commits, and then sleeps (Sleep Lib "kernel32") for 1 second - then
starts another transaction untill they are all in.
The class type is 'notAnMtsObject' - I just have it in MTS so that it
would not lock up everything ( I had the same lockup problem before
NT4 SP4 VI6 SP1, and I fixed it by adding the DLL to an MTS component
Everything was ok until NT4 SP4 - or VI6 SP1 (one of them caused this
problem). I could call this dll from an ASP page - and no other
users would notice any effect.
Now, when this is running and I see the progress reported on the ASP
page as each 100 record transaction is committed, no other database
access from ASP will work. Read-only forward cursors. nothing.
I can use the SQL 6.5 database just fine from the Enterprise manager
while this import is going on.
If I call the dll from a VB6 program, it does NOT lock up all ASP
database access. It is as if it were not running.
I am stumped on this. While the DLL is sleeping, there are not open
transactions, only open connections It should not interfere with
anything else - and does not interfere if called from outside of an
It is an apartment threaded, unattended execution DLL. Standard
stuff. Any ideas?
BTW - if it is locking me out, it is also probably locking YOU out but
you won't notice until you have a lot of dll calls taking place on an
active site. As long as that connection is open in the dll, it is
probably locking you out.