What does IIS FastCGI do when the number of concurrent connections exceeds the Max Instances setting? eg, Max Instances is set at 1 and 2 requests come in at the same time. Does IIS FastCGI a) queue up requests, b) pass the request through to an existing instance of the application, c) return an HTTP 500 error?
If IIS FastCGI does not queue up requests, then why is there a Queue Length setting and is it possible to have IIS FastCGI queue concurrent requests beyond the number of process? If IIS FastCGI does queue up requests then why are we getting a HTTP 500 error when we get concurrent connections past Max Instances?
Background
We are developing a web app which will be served by IIS FastCGI and have noticed that when we set Max Instances to a low value we get HTTP 500 errors for any concurrent connections past this value. We cannot find the source of this error in any logs and do not know whether it is coming from the app itself or IIS FastCGI.
We could set Instance Max Requests to 1, but as I understand it we would lose a lot of the efficiencies that FastCGI gives by destroying each process after a single request. Is there another setting that can be used to force concurrent requests beyond the number of processes to be queued?