Re: ADO.Net Connection Pooling Problem with Oracle
- From: "Bird" <mattsiemer@xxxxxxxxxxxxxxxxx>
- Date: 6 Apr 2005 11:01:22 -0700
I think I've solved the problem (at least one problem). I have a COM+
component that I use for database updates. This component's Transaction
Attribute is set to TransactionOption.Required. I have other COM+
components for my data layer that perform queries and updates. At least
one of these components has its Transaction Attribute set to
TransactionOption.Required. Since I didn't associate transactions with
queries, some of the exposed methods on these components are not
calling ContextUtil.SetComplete or ContextUtil.SetAbort (I know, stupid
mistake. I always called SetComplete or SetAbort with VB6 and MTS). If
I do not call SetComplete or SetAbort within a particular method, it
will create a new database connection for every new COM+ transaction.
For example, I have component (class library) A which has an Execute
method that calls the OracleCommand.Execute method to run a stored
procedure. Component B has a Validate method which in turn calls
component A's Execute method. Both components have a Transaction
Attribute of TransactionOption.Required. Everytime I call Component B
from an ASP.Net page, it will create a new database connection because,
I guess, it was not a valid pooled connection because of the open COM+
transaction.
.
- References:
- ADO.Net Connection Pooling Problem with Oracle
- From: Bird
- RE: ADO.Net Connection Pooling Problem with Oracle
- From: Matthew Holton
- Re: ADO.Net Connection Pooling Problem with Oracle
- From: Bird
- ADO.Net Connection Pooling Problem with Oracle
- Prev by Date: Re: Architecture: One Producer, Many Consumers
- Next by Date: DBTimeStamp - Data type mismatch in criteria expression
- Previous by thread: Re: ADO.Net Connection Pooling Problem with Oracle
- Next by thread: memory leak in SqlDataAdapter.Fill method?
- Index(es):
Relevant Pages
|