The number of running channels is not directly related to the number of users, but rather to the number of simultaneous requests. Users are not "connected" to the application, but rather exchange information with the server via HTTP requests. Users send requests on the server whenever they click on a link, or submit button. Each channel is a separate instance of VFP and can only execute a single request at a time. Whenever a FoxWeb request is received by the Web server, it is passed on to the FoxWeb Broker, which assigns it to the next available channel. If all channels are in use, then the request is queued and is served as soon as a channel becomes available. This is transparent to users, who simply receive the requested data as soon as the request is executed by FoxWeb.
You are right in that FoxWeb can only serve up to the same number of requests as you have open channels at the same time. However, this does not mean that any additional requests would be discarded. As the FoxWeb documentation explains, if you run too many simultaneous requests performance can actually suffer.
An additional factor you must consider is that the buffer memory is divided between open FoxWeb channels. This means that if you are running too many channels you will end up with much less buffer memory available for each request, which can slow down complex queries.
The current version of the documentation recommends 2-3 channels per CPU as a rule of thumb, but we are actually finding that with the latest version of FoxWeb, as well as newer hardware and operating systems, you may get better performance if you run up to 5 channels per CPU. It really all depends on your specific server and scripts. FoxWeb 3.0 will remove the 9-channel limit, so you will be able to run more channels on servers that can actually handle it.
For reference I'm including two sections from our documentation:
Sent by Randy Petty on 11/11/2003 12:46:01 PM:
What is the relationship between the number of channels running and the number of users. I'm assuming with 8 channels, hundreds of web users could be logged in, but how many can actively run database queries at the same time?
We continue to go around and around here with the number of channels to run on two or four cpu servers. We generally have less than 30 users logged in to any given database/site at a time.
I've mentioned the Foxweb guideline of 2 or 3 channels per cpu, but our systems group believes this would limit the number of active users to one per channel ( active meaning database requests, not just logged on ).