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