Verifique la configuración de tiempo de espera del socket TCP/IP en todos los enrutadores/conmutadores entre los servidores de aplicaciones y los servidores de bases de datos. También active el inicio de sesión en el lado de la base de datos y observe el ciclo de vida completo de la conexión y compare el tiempo con los errores en su aplicación. Sugiero activar las siguientes configuraciones en postgresql.conf hasta que tenga una idea de qué buscar:
log_connections = on
log_disconnections = on
log_statement = all
Estos se pueden activar con un SIGHUP del proceso de postgres (o ejecutar "SELECT pg_reload_conf();" como superusuario de la base de datos.
Seré que tiene una "conexión cerrada por host remoto" o algo similar como el último mensaje antes de que se registre la desconexión real.
He visto esto antes y fue la configuración de tiempo de espera en un interruptor intermedio lo que lo causó.