Jeff Gentry wrote: > On Tue, 5 Apr 2005, Dieter Maurer wrote: >>Usually, this means that the postgres server process died... > > I did run into something recently where the local firewall was killing the > connection to the DB server due to a timeout, so one of the local admin > types wrote a small zsql method that gets hit by a cronjob about once an > hour or so. > > Granted the end effect is the same (zope thinks that the DB server has > died) but in this case it was the connection itself.
Yeah, I think Jeff nailed it. I had FreeBSD's IPFilter set to drop idle states after an hour. Turns out FBSD by default does TCP keepalive, but only after 2 idle hours. I changed the net.inet.tcp.keepidle sysctl to lower it to a half-hour, so it now gooses the firewall often enough that I haven't seen a dropped connection since then. Looking back at the pgsql logs, I think I've always had this problem, but just didn't realize it until I tried a new ZPsycopgDA that lacked the auto-reconnect feature. Even though tweaking TCP fixed the problem, I think it'd still be good if ZPsycopgDA was able to auto-reconnect, because you could lose connections for other reasons - such as restarting postgres - and it'd be nice to not have to go and restart Zope too. (I think it's kind of funny that I didn't find out about my TCP problem until ZPsycopgDA failed to auto-reconnect, and I wouldn't have found out so soon about ZPsycopgDA not auto-reconnecting if I didn't have the TCP problem :) Barry _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )