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
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 :)
Zope maillist - Zope@zope.org
** No cross posts or HTML encoding! **
(Related lists -