Comment utiliser tcp_keepalives paramètres dans Postgresql?

Postgresql dispose de 3 keepalive paramètres pour la gestion des connexions perdues (dans postgresql.conf):

tcp_keepalives_count
tcp_keepalives_idle
tcp_keepalives_interval

Par défaut ce sont des 0.

Le comportement que je voudrais, c'est pour Postgresql pour déposer les connexions client après une période de temps, le client devrait-il perdre sa connexion réseau ou d'aller dormir.

Je suis actuellement en utilisant ces valeurs:

tcp_keepalives_count = 1
tcp_keepalives_idle = 60
tcp_keepalives_interval = 60

Je suis en cours d'exécution PostgreSQL 8.4 sur Mac OS X, mais il ne semble pas avoir d'effet. Mon test est que je verrouiller une ligne dans une table (à l'aide de SELECT FOR UPDATE) et débranchez la station de travail du réseau. Mais dans Postgresql, je vois toujours cette station de travail est maintenant le verrou.

Je m'attends à ce que, après le temps a passé (60 secondes dans ce cas), la connexion serait résilié et le verrou doit être libéré.

Soit je fais quelque chose de mal ou je suis ne comprends pas comment c'est censé fonctionner.

Des conseils?

J'ai quitté le serveur durant la nuit et quand j'ai vérifié dans l'AM, la serrure a été libéré. Je ne sais pas exactement combien de temps il a fallu pour le connecter à être mis fin, mais à l'évidence il n'est pas en regardant mes nouveaux paramètres (et, oui, j'ai redémarré le serveur).

OriginalL'auteur Paul Lefebvre | 2010-01-30