it-swarm.com.de

Gibt es eine Timeout-Option für den Remotezugriff auf die PostgreSQL-Datenbank?

Ich arbeite via pgAdmin III an einer entfernten PostgreSQL-Datenbank. Nach einer nicht so langen Zeit (z. B. 10-15 Minuten), ohne etwas in pgAdmin zu tun, läuft die Verbindung automatisch ab. Ich habe daher eine Fehlermeldung, in der ich gefragt werde, ob ich erneut eine Verbindung herstellen möchte. Dies dauert ungefähr 10 Sekunden. und die Datenbankstruktur bricht zusammen, sodass ich die zuvor geöffneten Schemas erneut öffnen muss.

Gibt es eine Möglichkeit, einen Timeout-Parameter irgendwo zu ändern, um zu verhindern, dass die Verbindung für einen längeren Zeitraum abläuft?

9
wiltomap

Eine PostgreSQL-Serververbindung, die nach 10 bis 15 Minuten unterbrochen wird, wird mit ziemlicher Sicherheit durch eine State-Tracking-Firewall (möglicherweise mithilfe von Network Address Translation (NAT)) zwischen dem Client und dem Server verursacht. Viele solcher Firewalls haben Standardzeitlimits von 15 Minuten (900 Sekunden).

Die drei serverseitigen Parameter tcp_keepalives_idle, tcp_keepalives_interval, tcp_keepalives_count sollen in diesen Situationen helfen. Siehe die Dokumentation hier: http://www.postgresql.org/docs/9.2/static/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE

Hierfür gibt es auch clientseitige Parameter: keepalives, keepalives_idle, keepalives_interval, keepalives_count, die Sie bei der Verbindung einstellen können. Siehe die Dokumentation hier: http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-KEEPALIVES

8
Colin 't Hart