On Tue, 2007-05-08 at 12:19, Sean Murphy wrote:
> Tom Lane wrote:
> > Sean Murphy <Sean.Murphy@equipoint.com> writes:
> >> I'm WAY out of my depth here, but my impression, based on the
> >> circumstances, is that there is some sort of an idle session timeout
> >> kicking in (most likely on the client side) and dropping the connection.
> >
> > There's no such timeout in the Postgres server, for sure. I would
> > actually bet that your problem is in some router between the client and
> > the server. In particular, routers that do NAT address mapping
> > typically have a timeout after which they will forget the mapping for an
> > idle connection. If you've got one of those, see if it'll let you
> > change the timeout.
> >
> > If you can't do that, you might think about teaching your client-side
> > code to send dummy queries every so often.
> >
> > regards, tom lane
> >
>
> I've already maxed out the connection timeout at the firewall... and
> I've been using dummy queries every five minutes, but it just feels like
> a crutch to do so.
Have you looked into tcp keepalive settings?
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 500
Not sure if those settings will help with an NAT router or not but it's
worth a try. Pgsql 8.2 can set those for you.