Daniel Nashed 10 October 2010 20:34:45
This setting has been around for a while and I was looking into it for a customer project.
Depending on your HTTP server requirements different strategies assigning the work make sense.
But it turned out that the old standard in R6.0 to evenly spread all the load on all available HTTP does not work well for servers with long going requests.
Specially for servers like a Traveler server this does not work well. Therefore IBM changed the standard in 8.5.1 to the queued method.
All requests are put into a queue and the requests are processed by the next free thread.
This avoids blocking situations for long going requests.
Also IBM recommends to use persistent connections also for this new standard thread mode, even the current documentation does not generally recommend it.
According to IBM it works well in most environments and it is recommend to set it.
So the good news here is that the standard has been modified to better fit current needs for most of the HTTP server scenarios.
HTTPQueueMethod=0 - This setting is the default, and represents no change in queueing from the R6.0 and above. The accept thread will evenly distributed network connections to all worker threads using a round robin method. Connections are assigned to a specific thread.
HTTPQueueMethod=1 - This setting will cause the accept thread to find the worker thread that has the least number of network connections assigned to it and assign the new network connection to that worker thread. It is still possible that a new network connection may be assigned to a thread that is in the process of processing a long running request. It is recommended but not required that persistent connections are disabled when using this option to get the maximum effect. This will limit the possible wait time if a new network connection is queued to a thread that already is busy with other connections(s)
HTTPQueueMethod=2 - This setting will cause the accept thread to put the incoming network connections on a queue from with the worker threads will pull from. This is the same model as R5. It is also recommend but not required that persistent connections be disabled when using this option to get the maximum effect.
- Comments