A few answers:

1. ADO.NET connection pooling is per-appdomain rather than per-process. This 
especially matters in ASP.NET, in which each application is a separate appdomain. You 
can call a remote process that uses a connection, but can't pass Connections themself 
around.

2. SqlClient connection pooling is implemented using similar code (conceptually) to 
COM+ pooled objects, but this code does not use COM+ pooled objects under the covers. 
It lives in System.Data.SqlClient. There is some information about this in the docs, 
or, this being .NET, you can read the code.

3. The one that comes to mind is shared memory, which had been used effectively as a 
pooled object and is not a database.

4. It restricts the security implementation possiblities, for one thing.

Hope this helps,
Bob Beauchemin
[EMAIL PROTECTED]

-----Original Message-----
From: Matthew [mailto:[EMAIL PROTECTED]]
Sent: Friday, May 10, 2002 6:53 AM
To: [EMAIL PROTECTED]
Subject: [ADVANCED-DOTNET] ADO.NET and Connection Pooling


I've been thinking about connection pooling with the SQL Server managed
provider, and have a few thoughts/questions:

1. ADO.NET connection pooling is tied to a specific process. Thus, if you
want to share a connection over multiple clients, you need to host your
database component in an ASP.NET application or through .NET Remoting (and
pay the price of the extra network call), right?

2. What technology underlies connection pooling in the SQL Server
provider? I've read that it is COM+, but this seems unlikely.

3. Database connections seem to be the key scalability bottleneck in an
enterprise application. With the use of connection pooling, isn't a 80% of
the reason for using COM+ services like object pooling and JIT activation
avoided? In other words, can you think of an example of a serviced
component that encapsulates an expensive resource (and so should be
pooled) that isn't related to a database?

4. In a distributed application, it saves a few headaches to let the
clients communicate with a Remoting layer, which then uses COM+ serviced
components on the same machine. This bypasses the DCOM problems that occur
with remote serviced components. But does this reduce the efficacy of COM+
in any way?

Any thoughts or experiences welcome. .NET certainly is a fascinating
technology shift....


Matthew

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to