Wie verwende ich die Einstellungen von tcp_keepalives in Postgresql?

Postgresql verfügt über 3 Keepalive-Einstellungen für die Verwaltung unterbrochener Verbindungen (in postgresql.conf):

tcp_keepalives_count
tcp_keepalives_idle
tcp_keepalives_interval

Standardmäßig sind dies 0.

Das Verhalten, das ich möchte, ist, dass Postgresql Client-Verbindungen nach einer gewissen Zeit beendet, falls der Client seine Netzwerkverbindung verliert oder in den Ruhezustand wechselt.

Ich verwende derzeit diese Werte:

tcp_keepalives_count = 1
tcp_keepalives_idle = 60
tcp_keepalives_interval = 60

Ich verwende PostgreSQL 8.4 unter Mac OS X, aber es scheint keine Auswirkungen zu haben. Mein Test ist, dass ich eine Zeile in einer Tabelle sperre (mit SELECT FOR UPDATE) und die Arbeitsstation vom Netzwerk trenne. Aber in Postgresql sehe ich immer noch diese Workstation, die das Schloss hält.

Ich würde erwarten, dass nach Ablauf der Zeit (in diesem Fall 60 Sekunden) die Verbindung beendet und die Sperre aufgehoben wird.

Entweder mache ich etwas falsch oder ich missverstehe völlig, wie das funktionieren soll.

Irgendein Rat?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage