FoxWeb tries to kill channels that are not responding, as long as you have the Restart Channels option enabled. You can verify this setting by checking the Configuration page of the FoxWeb Control Center, or by right-clicking on the FoxWeb icon in the notification area and making sure that the Restart Channels setting is checked. Normally, when a channel is restarted FoxWeb logs the last script that it served in fwstart.log.
The Troubleshooting/Common Problems topic in the FoxWeb documentation contains some useful information that could help you troubleshoot this problem. The relevant item is the one titled "Hanging channels, or channels that get restarted often".
I also have some additional questions:
There's no simple way for you to restart individual channels through code, but in any case, FoxWeb tries to do just that. The fact that it fails may be an indication that something is locking the channel process and is preventing it from exiting. It may also mean that Restart Channels is not enabled.
Finally, with FoxWeb 3 we introduced some improvements in the way FoxWeb restarts unresponsive channels. If you can't isolate the problem, it would probably be worth trying the evaluation version of FoxWeb 3 to see if it helps.
Sent by Joe Cosby on 09/07/2005 11:34:23 AM:
Operating system : Windows 2000 Server
VFP version : 6.0
Running as a system service? : No
Using run-time DLL? : No
Web server software : IIS
The version of FoxWeb you are using : 2.6
I am not related to the other person posting about problems with channels, I have a similar but somewhat different issue.
In the past, we have always had the problem that a channel will occasionally just 'die'. The channel will disappear from the Foxweb Status Monitor, although the window representing it will remain in the Windows task bar.
There is a page that foxweb produces which shows the channels,
and I have been using this to detect if channels are missing and send an alert message. We then go in and close the window representing the channel in the Windows task bar, doing that causes Foxweb to restart the channel.
When the channel is hung, users get page timeouts. Obviously Foxweb still tries to send web calls there even though the channel is dead and when this happens the user gets a timeout.
The problem we are having now, for the last week or so, is that the rate of channels dying has gone from a few times a month to several times a day and more. This is causing a severe service impact.
This is an extremely difficult problem to debug. There is no way, within a Foxpro program running in Foxweb, to determine what channel is running the program. As far as I know; or is that wrong, is there a way?
If there is I could use that to pin down what is the last thing that ran on that channel before it died, and hopefully that would tell me what is suddenly causing all these failures now.
The other problem is that I can't, as far as I can see, restart a channel from code. I can do it from the GUI, but not from within a Foxpro program. Since I can figure out from within a program whether a channel is down, if I could kill it, causing Foxweb to restart it, then I could drastically reduce the service impact, and also reduce the need for people to jump on dead channels at 3 in the morning.
It's very frustrating that there is so much you can do, but which is not accessible to code. It puts us in the position of having to do it by hand, which obviously is not what you want to be doing with a supposedly automated system ...
Anyway I am wondering primarily if there is a way to identify a channel as above or to kill one. Any other ideas are very welcome also