D
Dmitri Khanine
Hi All
Follow up to my last week' postings on connection pooling issue we
experience. Thanks all for your replies but since I still don't have a
solution – I've decided to start a new thread. Here is a link to the
original thread: http://tinyurl.com/yu68q
We use SQL Client (SqlCommand, SqlConnection and SqlDataReader) in our
3-tiered ASP.NET app written in C#. The problem we are running into is
that under heavy load the number of pooled connections increases
approximately by the current pool size every time the garbage
collector kicks in.
This happens even when only about 60 connections exists in the pool
with the max size of 100. The number of pooled connections does not
grow until the GC engages and – the most puzzling – the new connection
pool is being created at that very moment.
I rely on .NET CLR Data performance counters which I suspect might not
be reliable. But if they aren't – what is? The documented MS Knowledge
base issue with the counters
http://support.microsoft.com/default.aspx?scid=kb;en-us;314429 doesn't
seem to apply here)
I also follow all the good coding practices such as closing the
connection and DataReader in the finally block. I do not have any
destructors or Finalize implementations in the app as well. I have
performance monitor screenshots for all interested.
Any ideas?
Thank you!
Follow up to my last week' postings on connection pooling issue we
experience. Thanks all for your replies but since I still don't have a
solution – I've decided to start a new thread. Here is a link to the
original thread: http://tinyurl.com/yu68q
We use SQL Client (SqlCommand, SqlConnection and SqlDataReader) in our
3-tiered ASP.NET app written in C#. The problem we are running into is
that under heavy load the number of pooled connections increases
approximately by the current pool size every time the garbage
collector kicks in.
This happens even when only about 60 connections exists in the pool
with the max size of 100. The number of pooled connections does not
grow until the GC engages and – the most puzzling – the new connection
pool is being created at that very moment.
I rely on .NET CLR Data performance counters which I suspect might not
be reliable. But if they aren't – what is? The documented MS Knowledge
base issue with the counters
http://support.microsoft.com/default.aspx?scid=kb;en-us;314429 doesn't
seem to apply here)
I also follow all the good coding practices such as closing the
connection and DataReader in the finally block. I do not have any
destructors or Finalize implementations in the app as well. I have
performance monitor screenshots for all interested.
Any ideas?
Thank you!