Pooling of 'bad' database connections?

From: Ed Barrett <ebarrett_at_metastorm.com>
Date: 22 May 2003 04:17:26 -0700
Message-ID: <4026318.0305220317.572ff90a_at_posting.google.com>


We're getting a rather strange effect for which I'd be grateful for some help.

Our server app does lookups and updates against a database (SQL Server or Oracle). Talks via ADO, and runs under COM+. This server app runs under COM+ but does transaction control itself via ADO (ie it does not use COM+ declarative transaction model).

Recently we tried putting the server under some pressure, with 5 automated clients sending in requests as fast as possible. Against SQL Server this caused no problem. However in running the same test against Oracle, after about 20-30 mins we started to see a number of failures. Upon further investigation we discovered something rather curious:

<Speculation>What occurs to me is that this might indicate that an ADO connection goes 'bad' for some reason, and that once that happens it is remains pooled by COM+. Whether by design or otherwise it looks as though that database connection is associated with a particular thread in COM+'s pool, which is why I keep seeing the same thread ids coming up as failing.</Speculation> If this is true, is there any way I can tell COM+ to remove this 'bad' connection from its pool? Does this seem like a possible explanation?

An obvious approach to dealing with this is to look for another version of OLEDB provider. However we're currently using the latest one from Oracle for this particular Oracle client/server pairing. The search continues, but I'm looking out for alternative approaches just in case.

If this sounds familiar to anyone by all means tell us how you got around it.

Environment:

Windows 2000 SP3 (both professional and server). MDAC 2.71.9030.9
Oracle9i Enterprise Edition Release 9.2.0.3.0 Oracle Provider for OLEDB 9.2.0.2

Thanks in advance for any illumination offered.

Ed Barrett Received on Thu May 22 2003 - 13:17:26 CEST

Original text of this message