Connection-Handling Overview

In Sun Java System Web Server, acceptor threads on a listen socket accept
connections and put them into a connection queue. Session threads then pick
up connections from the queue and service the requests. The session threads
post more session threads if required at the end of the request. The policy
for adding new threads is based on the connection queue state:

Each time a new connection is returned, the number of connections
waiting in the queue (the backlog of connections) is compared to the number
of session threads already created. If it is greater than the number of threads,
more threads are scheduled to be added the next time a request completes.

The previous backlog is tracked, so that if it is seen to
be increasing over time, and if the increase is greater than the ThreadIncrement value, and the number of session threads minus the backlog is less
than the ThreadIncrement value, then another ThreadIncrement number of threads are scheduled to be added.

The process of adding new session threads is strictly limited
by the RqThrottle value.

To avoid creating too many threads when the backlog increases
suddenly (such as the startup of benchmark loads), the decision as to whether
more threads are needed is made only once every 16 or 32 times a connection
is made based on how many session threads already exist.

The following directives that affect the number and timeout of
threads, processes, and connections can be tuned in the Magnus Editor or magnus.conf: