Re: Pooling of 'bad' database connections?

From: William \(Bill\) Vaughn <"William>
Date: Thu, 22 May 2003 09:36:53 -0700
Message-ID: <ejcVbBIIDHA.2108_at_TK2MSFTNGP10.phx.gbl>


I think your assessment is right on. Since the provider manages the pool, reusing the "broken" connection is the fault of the provider. Yes, I've seen this before and IIRC, this has been addressed in more recent versions of the .NET data providers. I don't know if this issue has been corrected in the OLE DB providers. Yes, I would hunt for another provider or just drop Oracle. ;)

-- 
____________________________________
Bill Vaughn
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________

"Ed Barrett" <ebarrett_at_metastorm.com> wrote in message
news: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:
>
> - The failures occurred when an attempt was made to open an ADO
> database connection. An access violation would occur within the
> Open() method for no apparent reason.
>
> - From trace output it became clear that once such a failure occurred,
> that further failures were likely to occur on that same thread id.
> In one test run all failures occurred on a single thread. On another
> these failures were consistently noted on two thread ids.
>
>
> <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 - 18:36:53 CEST

Original text of this message