On Tue, 2007-05-08 at 12:19, Sean Murphy wrote: > Tom Lane wrote: > > Sean Murphy <Sean.Murphy@xxxxxxxxxxxxx> 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.