In meiner Anwendung (clientseitig) habe ich das Zeitlimit für Verbindungen und Befehle auf 10 Minuten festgelegt.
Dann führt meine Anwendung eine einfache Abfrage aus: SELECT pg_sleep(65)
Auf einigen Servern funktioniert es einwandfrei, aber andere Server schließen die Verbindung nach 60 Sekunden.
Könnte dies eine Art von PostgreSQL-Serverkonfiguration sein, die Zeitüberschreitungen einschränkt und meine Clienteinstellungen ignoriert?
postgresql
timeout
Andrzej Gis
quelle
quelle
SHOW statement_timeout;
Antworten:
Ja es ist möglich
In den Dokumenten werden zwei Einstellungen erwähnt (
idle_in_transaction_session_timeout
ist neu in Version 9.6x).statement_timeout
(ganze Zahl)idle_in_transaction_session_timeout
(ganze Zahl)Es ist wichtig, die in postgresql.conf nicht zu setzen, es
statement_timeout
sei denn, Sie möchten sich amüsieren.Hier ist ein Beispiel dafür
quelle
Nicht out of the box. Es wäre jedoch ziemlich einfach, einen benutzerdefinierten Server zu kompilieren, der Ihre Einstellungen ignoriert.
Viel wahrscheinlicher ist es jedoch, dass Ihre Verbindungen von einer Firewall oder einem Gateway getrennt werden, die keine inaktiven Verbindungen mögen.
Wenn Sie Zugriff auf die Protokolldatei des Servers haben, sollte dies einen guten Hinweis geben. Wenn der Client angibt, dass der Server die Verbindung unerwartet geschlossen hat, und der Server angibt, dass der Client die Verbindung unerwartet geschlossen hat, liegt wahrscheinlich etwas zwischen dem Client und dem Server, das die Verbindung tatsächlich trennt.
quelle
Ja, es ist möglich. Es gibt einige Verbindungsparameter, die Sie einstellen müssen.
Bitte beziehen Sie sich auf den folgenden Link. https://jdbc.postgresql.org/documentation/head/connect.html
loginTimeout connectTimeout socketTimeout cancelSignalTimeout
quelle