Q: O04OLE C++ Class Library Multi-threaded compliant ?

From: Sebastien BROCHET <tenabis_at_geocities.com>
Date: 1997/12/19
Message-ID: <349A7558.C7D252E1_at_geocities.com>#1/1


Hi,

I use VC5.0 and 004OLE C++ class library in a multi-threaded program under NT4SP3
I suspect this library does not handle correctly being called by several threads at the same time.
My threads share the same ODatabase object, passing by pointer and if I do some Open with Dynasets I get Access Violations in ORA73.DLL, SqlTnsNT.dll and NTtnt.dll depending of the Sql string, the location of the code.

If I take care to protect the dynasets access to the database with a mutex like this :
P(Mutex)
ODyn.Open(OraDb, "select ...");
V(Mutex)

My request runs and don't hang here ... but later ! Maybe I have to protect strongerly my dynaset access against concurent use ...

I would like to have the confirmation that this C++ library does not support concurrent access because it is not re-entrant (some global variables somewhere, maybe).
I think that the DLL itself (Oracl.dll for NT) _does_ support multi-access coming from the same process, that is to say several request at the same time with the same connection to an Oracle Database Or maybe I'm wrong and 1 connection = 1 request at the same time ...

Any help appreciated, to my mail address if possible ! Received on Fri Dec 19 1997 - 00:00:00 CET

Original text of this message