Controllare le impostazioni di timeout del socket TCP/IP su tutti i router/switch tra i server delle applicazioni e i server del database. Attiva anche la registrazione sul lato del database e osserva l'intero ciclo di vita della connessione e confronta i tempi con gli errori nell'applicazione. Suggerisco di attivare le seguenti impostazioni in postgresql.conf finché non avrai un'idea di cosa cercare:
log_connections = on
log_disconnections = on
log_statement = all
Questi possono essere attivati con un SIGHUP del processo postgres (o eseguire "SELECT pg_reload_conf();" come superutente del database.
Sarò che hai una "connessione chiusa dall'host remoto" o qualcosa di simile all'ultimo messaggio prima che venga registrata la disconnessione effettiva.
L'ho già visto prima e sono state le impostazioni di timeout su un interruttore intermedio a causarlo.