Überprüfen Sie Ihre TCP/IP-Socket-Timeout-Einstellungen auf allen Routern/Switches zwischen den Anwendungsservern und den Datenbankservern. Schalten Sie auch die Protokollierung auf der Datenbankseite ein und beobachten Sie den gesamten Lebenszyklus der Verbindung und vergleichen Sie das Timing mit den Fehlern in Ihrer Anwendung. Ich schlage vor, die folgenden Einstellungen in postgresql.conf zu aktivieren, bis Sie eine Vorstellung davon haben, wonach Sie suchen müssen:
log_connections = on
log_disconnections = on
log_statement = all
Diese können mit einem SIGHUP des Postgres-Prozesses aktiviert werden (oder "SELECT pg_reload_conf();" als Datenbank-Superuser ausführen.
).Ich werde sagen, dass Sie als letzte Meldung vor dem eigentlichen Trennen eine "Verbindung vom Remote-Host geschlossen" oder etwas Ähnliches haben.
Ich habe das schon einmal gesehen und es waren die Timeout-Einstellungen auf einem Zwischenschalter, die es verursacht haben.