/proc/sys/net/ipv4/tcp_keepalive_time -> 15 mn
/proc/sys/net/ipv4/tcp_keepalive_intvl -> 1 mn
/proc/sys/net/ipv4/tcp_keepalive_probes -> 9
Au bout de 15+9*1 mn j'ai toujours les connexions du côté serveur postgresql .... J'ai pas redémarré le serveur ni relancé postgresql. Donc à part forcer leur clôture via pg_terminate_backend je vois pas ce que je peux faire !
]]>Ces connexions fantômes on les tue avec la commande sus-mentionnée.
En tout cas merci de ta réponse.
]]>Si vous avez des soucis réseaux, il faut plutôt voir du côté del a pile tcp du serveur, des équipements réseaux, ou des paramètres tcp_keepalives_*
]]>J'avais posé les questions qui suivent dans la partie General, n'ayant pas de réponse je repose mes questions dans ce forum (pour une 9.3 et jdbc4) :
1) Est-ce que la méthode setQueryTimeOut est implémentée ? Un test d'une valeur à 2 secondes semble ne pas fonctionner.
2) Si aucun timeout n'est donné quels sont les timeout que l'implémentation jdbc utilise ?
3) Lorsqu'un client perd le réseau (sur du WIFI) nous reconnectons la base (mais cela semble inutile car un executeQuery avec réseau stoppé semble attendre mais basé sur quel timeout ça on n'a pas trouvé) et nous avons eu le cas suivant : même avec un arrêt du poste clients les connexion restent ouvertes sur le serveur !!! Comment cela est-il possible ? Nous avons dû les détruire avec la méthode suivante :
SELECT pg_terminate_backend(procpid)
FROM (select procpid from pg_stat_activity WHERE datname = '<mabase>' AND usename='<user>'
order by backend_start
limit (select count(*)-1 from pg_stat_activity WHERE datname = '<mabase>'' AND usename='<user>' ) )
Cordialement
]]>