Je travaille via pgAdmin III sur une base de données PostgreSQL distante. Après une période non longue (disons 10 à 15 minutes) sans rien faire dans pgAdmin, la connexion expire automatiquement. J'ai donc un message d'erreur me demandant si je veux me reconnecter. Cela prend environ 10 secondes. et la structure de la base de données s'effondre, je dois donc rouvrir les schémas que j'avais ouverts auparavant.
Existe-t-il un moyen de modifier un paramètre de délai d'attente quelque part afin d'empêcher la connexion de se terminer pendant une période plus longue?
Une connexion au serveur PostgreSQL coupant après 10 à 15 minutes est presque certainement causée par un pare-feu de suivi d'état (éventuellement à l'aide de la traduction d'adresses réseau (NAT)) entre le client et le serveur. De nombreux pare-feu ont des délais d'expiration par défaut de 15 minutes (900 secondes).
Les trois paramètres côté serveur, tcp_keepalives_idle
, tcp_keepalives_interval
, tcp_keepalives_count
sont conçus pour vous aider dans ces situations. Voir la documentation située ici: http://www.postgresql.org/docs/9.2/static/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE
Il existe également des paramètres côté client pour cela: keepalives
, keepalives_idle
, keepalives_interval
, keepalives_count
, que vous pouvez définir lors de la connexion. Voir la documentation située ici: http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-KEEPALIVES