Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Q: Is Intersolv's Oracle ODBC Driver Thread-Safe?
Gerard Averill wrote:
>
> To make a long story short(er), the subcontractor claims that Oracle (or
> the ODBC driver, it's not clear which they are claiming) does not support
> multiple database connections/transactions from a single process, even when
> done from multiple threads. Therefore, they are using semaphores around
> database access routines (basically most of the threads' code, which seems to
> me to defeat the purpose).
>
> My understanding was that, in general, ODBC, while not allowing multiple
> concurrent statements to be active on a given database connection, did allow
> multiple database connections to each have an active statement. Therefore,
> the data loader's threads could each use its own database connection and
> therefore have concurrent statements active against the Oracle database..
>
Hi,
Actually, some of the Oracle ODBC drivers are multi-threaded while others are not; if the driver is multi-threaded, one process is sufficient to allow multiple threads executing concurrently. If you can connect to multiple databases (Oracle databases) using this driver then one driver process can handle many connections.
If you have different databases (Oracle, Sybase, etc) and you want to connect to them concurrently, then you will need a 3-tier set up, similar to the idea SimbaExpress uses. An ODBC server/driver manager sits in the middle so the clients only talk to the middle server while the server communicates with different data sources. With this type of set up, a large number of different clients/databases can be connected in a network without loss of ODBC performance.
Vance
Vance Pan Email: g2l1_at_ugrad.cs.ubc.ca
Free version of SimbaExpress! Download it at... http://www.simbatech.com/express
Need to build ODBC drivers? Check out... http://www.simbatech.com/sdk
For other information, you can contact info_at_simbatech.com