PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 04/05/2018 15:20:39

chanteclair
Membre

Timeout ou quelquechose du même genre

Bonjour,
Nous rencontrons (au boulot) un problème de déconnexion entre PGSQL et Qgis Server 2.18 sur une VM.
Voici la configuration :
- PGSQL v9.6 est installé sur un Windows Server 2012 R2 (VM sur un serveur de notre infra interne),
- une VM, hébergée chez Azure et intégrée à notre réseau local, en Debian 9 Stretch.

Le problème rencontré est que les applications déposées sur la VM et exploitant PGSQL se déconnectent au bout d'un certain temps. La solution, pour le moment, est de redémarrer les services de Qgis Server pour "réinitialiser" la connexion et que celle-ci soit rétablie.
Pour autant, après avoir réalisé un test avec un PGSQL v9.6 installé en local sur la VM Debian, cette déconnexion n'a jamais lieu. Les services Qgis Server ne semblent donc pas en cause.
Auriez-vous une idée des paramètres à vérifier du côté de PGSQL et/ou d'où ce comportement peut venir ?
Merci par avance de vos réponses.
Cordialement.

Hors ligne

#2 04/05/2018 15:26:13

gleu
Administrateur

Re : Timeout ou quelquechose du même genre

Ce comportement doit venir d'un équipement réseau qui coupe les connexions inactives au bout d'un certain temps. Regardez les paramètres de KeepAlive de PostgreSQL pour corriger ça.


Guillaume.

Hors ligne

#3 04/05/2018 15:29:02

chanteclair
Membre

Re : Timeout ou quelquechose du même genre

Merci de votre réactivité !
Je vais regarder cela et vous tiendrai au courant.
Merci.

Hors ligne

#4 04/05/2018 15:52:12

chanteclair
Membre

Re : Timeout ou quelquechose du même genre

A la lecture de la doc, je ne comprends pas du coup quelle valeur saisir pour les paramètres tcp_keepalive_ pour tenter d'avoir une connexion permanente entre ma VM Debian et mon PGSQL Windows si Windows ne fournit pas un moyen de lire la valeur par défaut du système...
Désolé pour ces lacunes techniques...

tcp_keepalives_idle (integer)

    Indique le nombre de secondes d'inactivité avant que TCP envoie un paquet keepalive au client. Une valeur de 0 revient à utiliser la valeur système par défaut. Ce paramètre est seulement supporté par les systèmes qui supportent les symboles TCP_KEEPIDLE ou une option socket équivalente et sur Windows ; sur les autres systèmes, ce paramètre doit valoir zéro. Pour les sessions connectées via une socket de domaine Unix, ce paramètre est ignoré et vaut toujours zéro.

    Sur Windows, une valeur de 0 configurera ce paramètre à deux heures car Windows ne fournit pas un moyen de lire la valeur par défaut du système.
tcp_keepalives_interval (integer)

    Indique le nombre de secondes après lesquelles un paquet TCP keepalive qui n'a pas été aquitté par le client doit être retransmis. Une valeur de 0 revient à utiliser la valeur système par défaut. Ce paramètre est seulement supporté par les systèmes qui supportent le symbole TCP_KEEPINTVL ou une option socket équivalente et sur Windows ; sur les autres systèmes, ce paramètre doit valoir zéro. Pour les sessions connectées via une socket de domaine Unix, ce paramètre est ignoré et vaut toujours zéro.


    Sur Windows, une valeur de 0 configurera ce paramètre à une seconde car Windows ne fournit pas un moyen de lire la valeur par défaut du système.
tcp_keepalives_count (integer)

    Indique le nombre de paquets TCP keepalive pouvant être perdus avant que la connexion au serveur soit considérée comme morte. Une valeur de 0 revient à utiliser la valeur système par défaut. Ce paramètre est seulement supporté par les systèmes qui supportent le symbole TCP_KEEPCNT ou une option socket équivalente ; sur les autres systèmes, ce paramètre doit valoir zéro. Pour les sessions connectées via une socket de domaine Unix, ce paramètre est ignoré et vaut toujours zéro.


    Ce paramètre n'est pas supporté sur Windows et doit donc valoir zéro.

Hors ligne

#5 04/05/2018 16:01:06

gleu
Administrateur

Re : Timeout ou quelquechose du même genre

Je suppose qu'il faut dans ce cas indiquer une valeur inférieur à 2 heures. Essayez par exemple avec 10 minutes.


Guillaume.

Hors ligne

#6 04/05/2018 16:17:38

chanteclair
Membre

Re : Timeout ou quelquechose du même genre

Merci mais c'est justement cette valeur qui me pose question.
Si 0 = 2h ou 120 min qu'est-ce qu'il faut mettre pour 10 ou 20 min par exemple ? -1 ?
D'autant que je me souvienne, la multiplication ou la division par 0 sont impossibles. smile Ou je n'envisage pas la chose sous le bon angle ??

Hors ligne

#7 04/05/2018 16:25:12

rjuju
Administrateur

Re : Timeout ou quelquechose du même genre

0 est une veleur spéciale qui veut dire d'utiliser la valeur configurée sur le système.  Si vous voulez utiliser une valeur spécifique, il faut spécifier un temps en seconde, donc 600 par exemple pour 10 minutes.

En ligne

#8 04/05/2018 16:39:54

chanteclair
Membre

Re : Timeout ou quelquechose du même genre

ok merci.

Hors ligne

Pied de page des forums