Juan Miguel <juanmime@xxxxxxx> writes: > I have a Linux box with postgres 7.4 branche, where web php applications > queries the DB. When Apache launches a php file that connects to the DB, > if I do "ps aux | grep postgrest", I can see a process "postgres user > ...." running, that represents the session openned to the DB. But when > the php program finishes, and closes the connection, this process does > not end. Therefore the number of processes are growing while people > visit the web. ¿ Why ? Evidently the connection isn't really getting closed. I don't know enough about PHP to help you with why not, though. > I gain access this DB remotely by an encrypted connection with stunnel. > Well, when I launch a connection to a DB, and passes a long time without > traffic, I realise the connection is closed. The program that queries > the DB does not realise the connection is broken and when it tries to > query, it fails. I think that the origin of the problem is not stunnel, > because the same problem presents to me when trying with a testing DB > without stunnel. ¿ Why ? Has postgres a timer that breaks the > connections when there is no traffic ? Has Linux this timmer ? No, and no, but a lot of router and firewall hardware has idle-timeouts for connections. Look at the settings for whatever boxes are between your two machines --- if you're lucky, you can increase the idle timeout. More recent versions of PG (I think 8.1 and up) allow you to fool with the TCP keepalive settings --- reducing those can be used to generate dummy traffic that will keep the firewall from thinking the connection is idle. regards, tom lane