This formula is fixed and cannot be changed. The algorithm has been the same since version 1.1 (10 years ago?) and we have never heard of any problems attributable to it. The idea is that for a given script timeout value, the more channels you run, the more frequently you will have a channel free itself. Under regular circumstances you will never have a pattern where a large number of requests will arrive at the exact same moment, while all your channels happen to be free. This is the only situation in which you would have problems with this algorithm. On a normal server channels pick up requests at random intervals, so even if your server is really busy, you will not encounter the "Channel Timeout Error - No Available Channels" message.
Can you configure your testing scripts so as to ramp up to the total number of connections over a period of 30 seconds? This will allow you to simulate a real world situation.
FoxWeb Support Team
Sent by James Williams on 02/14/2009 02:10:37 AM:
Do not understand the calc for the timeout on pending scripts.
2 channels, 30 sec script timeout, pending script timeout = (30*3/2)+5 (total 50 secs)
20 channels, 30 sec script timeout, pending script timeout = (30*3/20 )+5(total 9.5 secs)
30 channels, 30 sec script timeout, pending script timeout = (30*3/30 )+5(total 8 secs)
This does not make any sense, I need to be able to set this value myself or the calc should simply be script timeout + 10 (total 40 sec) if the script timeout is set to 30 secs.
Sent by FoxWeb Support on 02/11/2009 12:41:50 PM:
What kind of script are you calling during your test? If your script takes too long to complete (but less than your script timeout setting) and you have too many requests arriving at the same time, you could end up in a situation where queued requests time out, with the first error you mentioned (Channel Timeout Error - No Available Channels). Here's how it works:
When a request comes in, the FoxWeb Channel Broker attempts to match it with a free channel. If all open channels are already busy serving previous requests, this request is placed in a first-in, first-out (FIFO) queue, until a channel becomes available. If a request waits in the queue for longer than (ScriptTimeout * 3 / TotalChannels) + 5 seconds, then the broker stops trying to match it with a channel and returns the Channel Timeout Error.
Let's assume that your script timeout is 30 seconds and that you have configured FoxWeb to run 20 channels. This means that if a request is in the queue for longer than (30 * 3 / 20) + 5 = 9.5 seconds, you will get the error.
How are you testing? You should probably throttle the software that originates the requests to a maximum number of active requests, so that you don't end up with too many requests in the queue.
The second error (FoxWeb Broker Timed Out) is related to the first one.
The third error (FoxWeb Service Has Been Temporarily Paused) indicates that FoxWeb was paused, buy selecting the "Pause FoxWeb" option on the tray icon, or from the Services applet in the Control Panel.
FoxWeb Support Team
Sent by James Williams on 02/11/2009 04:37:24 AM:
I am getting the following error messages, I need to know what causes them (why foxweb thinks it should display the message).
Here are some details of whats running:
Window 2003 std sp2
20 foxweb channels
3gb mem buffer
Channel Timeout Error - No Available Channels
FoxWeb Broker Timed Out
FoxWeb Service Has Been Temporarily Paused
We are currently testing the scripts under heavy load (what loads we can get away with)
Current loads are about 12 scripts per second
We get no Errors in the error log and no restarting of channels in the start.log