Kontrollera dina inställningar för TCP/IP-sockets timeout på alla routrar/switchar mellan applikationsservrarna och databasservrarna. Slå också på loggning på databassidan och se hela livscykeln för anslutningen och jämför tidpunkten med felen i din applikation. Jag föreslår att du aktiverar följande inställningar i postgresql.conf tills du får en uppfattning om vad du ska leta efter:
log_connections = on
log_disconnections = on
log_statement = all
Dessa kan aktiveras med en SIGHUP av postgres-processen (eller kör "SELECT pg_reload_conf();" som en databassuperanvändare.
Jag kommer att vara att du har en "anslutning stängd av fjärrvärd" eller något liknande som det sista meddelandet innan den faktiska frånkopplingen loggas.
Jag har sett detta förut och det var timeoutinställningarna på en mellanswitch som orsakade det.