[ZODB-Dev] [Danger] "ZEOClientStorage" does not detect lost
dieter at handshake.de
Tue Jun 28 12:49:29 EDT 2005
Tim Peters wrote at 2005-6-27 15:38 -0400:
>> Probably, "ZEOClientStorage" (and the ZEO server) should use
>> "SO_KEEPALIVE" to enable TCP keepalive messages. However, the default
>> TCP timeouts are probably too high (2 hours) for many ZODB applications
>> (like ours).
>Section 184.108.40.206 of RFC 1122 doesn't read like it thinks keep-alives are
>either portable or appropriate for this. In particular,
> It is extremely important to remember that ACK segments that
> contain no data are not reliably transmitted by TCP.
> Consequently, if a keep-alive mechanism is implemented it
> MUST NOT interpret failure to respond to any specific probe
> as a dead connection.
Then hopefully, TCP knows that and observes it in the
implementation of its "keep-alive" mechanism.
At least, it is quite careful (with Linux default parameters):
Only after 9 keep alive messages are lost, the connection is
>> I will implement an application specific keep alive mechanism.
>How will you do that?
I attach the script (wrapped up as a Zope "product").
> Would it be appropriate for ZEO to do something
Yes. It would be very nice.
> If ZEO did, would you still need to bother?
And I would be happy, because I am using internal
undocumented implementation details that already once
changed between ZEO releases.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2802 bytes
Desc: ZEO Keepalive script
Url : http://mail.zope.org/pipermail/zodb-dev/attachments/20050628/ac57bb84/__init__.py
More information about the ZODB-Dev