On Sat, 2002-08-24 at 14:00, Oliver Bleutgen wrote:
isClientConnected might be a good idea the same way that the abort() and other methods are a good idea in mod_perl. That is, give the developer a possibility to check if the client is still able to read, i.e. still "there". But that can't reduce the responsibility of zope in such cases IMO.
It's certainly not an easy problem to solve. Maybe someone on the list has suggestions. Switching to a multiprocess model might help, but that's a pretty big undertaking. I don't think its as big of a problem as you seem to believe, but then again, I'm used to it and maybe I'm inadvertently downplaying its performance impact.
How exactly would you use isClientConnected with a "results" DTML-method calling a a ZSQL-method which hangs? ;-)
There's really nothing that Zope or the programmer can do for you if a call to fetch a row from your database hangs, as it's possible (even likely) that no Python code would be executing during the time of the hang (coupled with the fact that you can't sanely kill a Python thread from outside)... I'd consider it a clue that you need to upgrade or fix your database server or at least change its configuration. - C