Steve Alexander wrote:
Oliver Bleutgen wrote:
Although Zope has a "response stream" method of sending information back to the client, most things in Zope don't use it.
Instead, the response information is aggregated, converted into a string, and then sent back all at once at the sucessful completion of the transaction.
Well, then it may be difficult to get zope to behave like the "other" systems, right?
These other systems you mention are using the availability of a response stream as a surrogate for RESPONSE.isClientConnected(). I'd rather have an explicit RESPONSE.isClientConnected().
This is not correct. The systems I mentioned do also have the possibility to check if the client is still connected, it's just that they additionally prevent writing to a response which will never get delivered. This is quite reasonable IMO.
Although, it would make sense to raise an exception if someone tried to write to the Zope response stream, in the rare cases when this does happen.
I know we are talking about extreme cases here. But the behavior of java and mod_perl may prevent the whole system from falling over on a loaded server. This is made worse by the relative small number of threads which are running on a stock zope. cheers, oliver