T
techie
I've got an ASP.NET application that runs Word macros after a user submits
it to the website. A web service written in C# does the work. Many users
can submit Word documents at any one time. However, the application only
processes 1 Word document at a time.
I had a problem during testing when several users submitted 10 documents
each at the same time. At a point (user1: 7 docs; user2: 4 docs; user3: 7
docs; user4: 5docs) the server reported the following error after clicking
'Validate': HTTP status code 504 - no response from remotes server. Server
responded after trying again 5 minutes later. However, despite the error
message emails were received for these documents.
My application adds to the thread pool like this:
// Call asynchronously method that does work that takes time
WaitCallback doWork = new WaitCallback( StartBackgroundService );
// Then return true if successfully started.
return ThreadPool.QueueUserWorkItem( doWork, allocateInfo );
I want to avoid the 'HTTP status code 504 - no response from remotes server'
error message. Therefore, I increased the Maximum number of worker
processes to 50. Then when I tested submitting documents one after the
other in quick succession, I found the number of worker threads increase to
50 on the webserver. I haven't yet got the users to test submitting many
documents at the same time yet.
From what I understand of a Web Garden is that it is a thread pool and the
threads share their workload out with one another. Does this increase the
availability of the website, i.e. avoid any timeout errors like above? If
the thread pool reaches its maximum size of 50 what happens when users
submit more documents? How is the thread pool maintained at 50? Is one
thread killed and another started or is one recycled automatically? I have
increased the timeout of threads to 300 minutes because some large Words
documents take a long time to process.
Basically my question is, does increasing the size of the Web Garden
increase the availability of a website for concurrent users? State is not
important for me because this site performs back-end processing. A front
end web site send the document to the back end site.
it to the website. A web service written in C# does the work. Many users
can submit Word documents at any one time. However, the application only
processes 1 Word document at a time.
I had a problem during testing when several users submitted 10 documents
each at the same time. At a point (user1: 7 docs; user2: 4 docs; user3: 7
docs; user4: 5docs) the server reported the following error after clicking
'Validate': HTTP status code 504 - no response from remotes server. Server
responded after trying again 5 minutes later. However, despite the error
message emails were received for these documents.
My application adds to the thread pool like this:
// Call asynchronously method that does work that takes time
WaitCallback doWork = new WaitCallback( StartBackgroundService );
// Then return true if successfully started.
return ThreadPool.QueueUserWorkItem( doWork, allocateInfo );
I want to avoid the 'HTTP status code 504 - no response from remotes server'
error message. Therefore, I increased the Maximum number of worker
processes to 50. Then when I tested submitting documents one after the
other in quick succession, I found the number of worker threads increase to
50 on the webserver. I haven't yet got the users to test submitting many
documents at the same time yet.
From what I understand of a Web Garden is that it is a thread pool and the
threads share their workload out with one another. Does this increase the
availability of the website, i.e. avoid any timeout errors like above? If
the thread pool reaches its maximum size of 50 what happens when users
submit more documents? How is the thread pool maintained at 50? Is one
thread killed and another started or is one recycled automatically? I have
increased the timeout of threads to 300 minutes because some large Words
documents take a long time to process.
Basically my question is, does increasing the size of the Web Garden
increase the availability of a website for concurrent users? State is not
important for me because this site performs back-end processing. A front
end web site send the document to the back end site.