In our web application we see instances where we have the asp requests
queued going up and down when there are only 8-10 asp requests being
processed. If I understand correctly, this means there are one 8-10 asp
worker threads actually doing work. We are currently set to the default of
25 threads per processor, so there should be threads available to handle the
request.
We have found a couple of situations where we can cause the asp requests
queued to rise even if only one person is using the web server.
In the first situation, we have an asp page that contains a form and a
button that submits back to the same page. If the code to process the
submitted data takes a long time and the user clicks the submit button again
while the original submit is still being processed, the asp requests queued
will rise by 1. If you continue to click submit, the queue rises by one
each time.
Since this can be reproduced by having just one person using the server,
there should be plenty of asp worker threads to handle the additional
requests. However, it seems that each submit from the web page is using the
same worker thread. Why would this be the case?
The second instance that we can get the asp requests queued to rise is just
a long running asp page. We made a page that just does a for each loop from
0 to 1000000000. When we run the page, it obviously takes a while to run.
While it is running, if we hit the stop button, and then run the page again
(the original request is still processing because asp does not know the user
hit stop), the asp queue will go up by one, and will go up by one each time
we do this. Here again, it appears that individual asp requests are getting
sent to the same asp worker thread. Is this what is going on?
I know we could use "isclientconnected", but we want to know why it seems
that individual requests keep getting sent to the same thread.
Any help would be appreciated,
Thanks.
Pete Conlan