Datenverbindung zu entfernten PostgreSQL-Server schläft nach einigen Minuten ein ...SSL SYSCALL error: Connection timed out

Hallo zusammen
ich nutze verschiedene PostgreSQL-Datenbanken, auf die ich über das Internet zugreife. Diese Datenbanken verwalten räumliche Daten auf die ich über QGIS und pgAdmin 4 zugreife.
Mein Client-Rechner läuft unter Ubuntu 20.04.
Wenn ich mich über pgAdmin 4 mit diesen Servern verbinde, dort z.B. einige Abfragen absetze, dann ins QGIS wechsle und nach einigen Minuten zurückkehre, kann ich war noch Abfragen eingeben, jedoch laufen Sie unendlich… Versuche ich dann im DB-Baum einzelne Schemata oder Tabellen auszuklappen, kreiselt nur das “ich arbeite” Symbol… Auch ein Disconnect und neu verbinden bringt nichts. Nur ein Neustart des pgAdmin verschaft mir neunen Zutritt zur Datenbank.
Ähnlich auch das Verhalten von psql… Nach einiger Zeit der Untätigkeit zurückzukehren funktioniert nicht mehr.
pgadmin4 gibt mir folgende Fehlermeldung:
could not receive data from server: Connection timed out
SSL SYSCALL error: Connection timed out

Greife ich mit QGIS auf diese entfernten Datenbanken zu und öffne nach einiger Zeit die Attributtabelle oder nutze den Ausdruckseditor, so friert QGIS füher oder später vollständig ein.

Das Phänomen tritt nich auf bei der Nutzung lokaler PostGis-Verbindungen. Es macht keinen Unterschied ob ich psql 12 oder 14 nutze.

Hat jemand eine Idee, wie sich das Pproblem lösen lässt?
Viele Grüße,
Claas Leiner

Möglicherweise ist da ein Router oder anderes Krams dazwischen, welches aufgrund dessen, daß da kein Netzwerktraffic ist, die Verbindung dann beendet.
Falls Du Zugriff zu den DB-Servern hast: da gibt es tcp_keepalives - Settings, mit denen Du spielen kannst.

Und schau auch mal hier:

Vielen Dank!
Das hat mir geholfen.
Tatsächlich funktioniert alles wieder,
wenn die Verbindungen über pg_service.donf einrichte und dort für die einzelnen Verbindungen die Einträge:
keepalives=1
connect_timeout=0
keepalives_idle=10
tcp_user_timeout=3600
keepalives_interval=60
keepalives_count=100

hinzufüge.

Außerdem habe ich auf dem Server selber in die postgresql.conf folgende Einträge vorgenommen:
tcp_keepalives_interval = 60
tcp_keepalives_count = 100
tcp_user_timeout = 3600
Viele Grüße,
Claas

1 „Gefällt mir“

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.