#1 Mon 20 May 2019 11:02
- jlavaure
- Participant assidu
- Date d'inscription: 20 Apr 2013
- Messages: 203
QGIS 3 / Postgres: Erreur connexion max
Bonjour à toute la communauté,
Je suis le responsable SIG d'une entreprise de 20 personnes.
Vous avons migré vers QGIS3 il y a plusieurs mois (quand la 3.4 est devenu LTR).
Depuis nous rencontrons régulièrement un message d'erreur que nous n'avions pas sous QGIS 2.18.
Le message d'erreur stipule que le nombre maximum de connexion postgres a été atteint, soit 100. Ceci alors que nous sommes une dizaine à utiliser QGIS.
J'ai remarqué que les sessions QGIS ne se fermaient pas sur postgres (par exemple il y en a plusieurs de la semaine dernière). Résultat, nous devons fermer manuellement les sessions sur la page d'administration postgres.
Je ne sais pas si c'est lié à QGIS 3.4, mais chaque semaine c'est la même histoire.
Est-ce-que certain ont eu le même problème ? Sinon des solutions a envisager pour que les connexions postgres se ferment à la fermeture de QGIS ?
Merci d'avance pour votre retour,
J
Hors ligne
#2 Mon 20 May 2019 11:19
Re: QGIS 3 / Postgres: Erreur connexion max
Bonjour,
Dans un premier temps, vous pouvez augmenter le nombre de connexions simultanées dans la conf de postgresql
https://www.postgresql.org/docs/current … ction.html
Mais c'est juste du contournement.
Vous pouvez aussi gérer vos pools connexions avec des outils annexes comme PgBouncer ou PgPool. De quoi peut-être aussi investiguer plus en détail.
Hors ligne
#3 Mon 20 May 2019 11:27
- jlavaure
- Participant assidu
- Date d'inscription: 20 Apr 2013
- Messages: 203
Re: QGIS 3 / Postgres: Erreur connexion max
@PA :
On a une configuration particulière, le serveur postgres est stocké sur un NAS ou seul un informatition peut accéder aux fichiers de conf en SSH. Mais le NAS remet à zéro le paramétrage à 100, donc pas possible de contourner le problème de la sorte.
Je vais regarder PgBouncer et PgPool.
Merci.
D'autre proposition sinon ?
J.
Hors ligne
#4 Mon 20 May 2019 11:29
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: QGIS 3 / Postgres: Erreur connexion max
Salut,
il y avait un ticket similaire qui concernait les connexions initiées par le dbmanager
qui a été clôturé il y a 5
https://issues.qgis.org/issues/7679
Est ce que vous utilisez des plugins ou des scripts ?
Peut être que cela peut venir de là.
Quel est l'état des connexions que vous devez fermer manuellement ?
Si leur état est IDLE, et que vous avez un serveur PostgreSQL >= 9.6,
vous pouvez régler l'option idle_in_transaction_session_timeout
pour clore automatiquement ces connexions.
Sinon vous pouvez installer un proxy du genre pgBouncer
entre vos clients QGIS et le serveur PostgreSQL pour faire la même chose
(pgBouncer vous permettrait aussi de pooler vos connexions).
Dernière modification par tumasgiu (Mon 20 May 2019 11:33)
Hors ligne
#5 Mon 20 May 2019 11:39
- jlavaure
- Participant assidu
- Date d'inscription: 20 Apr 2013
- Messages: 203
Re: QGIS 3 / Postgres: Erreur connexion max
@tumasgiu :
Non rien de particulier à noter niveau plugin ou scripts.
Je vais regarder le ticket, on sait jamais.
En effet toutes les connexions sont en état IDLE et nous avons postgres 10.5.
L'option idle_in_transaction_session_timeout est réglée à 0 ms
Ce paramètre devrait fonctionner non ? Pourtant les sessions ne se ferment pas....
Hors ligne
#6 Mon 20 May 2019 11:48
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: QGIS 3 / Postgres: Erreur connexion max
Non, la valeur 0 a pour effet de désactiver l'option.
Il faut indiquer une valeur, en milliseconde.
Dernière modification par tumasgiu (Mon 20 May 2019 11:48)
Hors ligne
#7 Mon 20 May 2019 11:52
- jlavaure
- Participant assidu
- Date d'inscription: 20 Apr 2013
- Messages: 203
Re: QGIS 3 / Postgres: Erreur connexion max
Je vais essayer ça, que me conseillez vous comme valeur ?
24 heures = 86400000 millisecondes
Cela pourrait être pas mal non ?
Hors ligne
#8 Mon 20 May 2019 11:52
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: QGIS 3 / Postgres: Erreur connexion max
Et Il faut redemarrer le serveur postgresql pour
que les modifications soient effectives.
Hors ligne
#9 Mon 20 May 2019 12:05
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: QGIS 3 / Postgres: Erreur connexion max
Pour la valeur, cela dépend de la vitesse
à laquelle les connexions s'accumulent.
Au vu de ce que vous avez décrit je me dis qu'une heure
ou deux serait suffisant.
Il faut bien comprendre que PostgreSQL ne fermera
que les connections inactives pendant un laps de temps
égal à la valeur que vous aurez indiqué.
QGIS de mémoire ne ferme pas les connexions, même
si aucun traitement n'est en cours, donc,
au pire la connexion d'un des clients sera perdue,
mais ce n'est pas grave car QGIS se reconnecte automatiquement
sans crasher.
Sinon, apparemment vous pouvez aussi déclarer
la valeur en mode texte, exemple "1 hour".
C'est plus lisible que 3600000.
Dernière modification par tumasgiu (Mon 20 May 2019 12:06)
Hors ligne
#10 Mon 20 May 2019 12:20
- jlavaure
- Participant assidu
- Date d'inscription: 20 Apr 2013
- Messages: 203
Re: QGIS 3 / Postgres: Erreur connexion max
Merci tumasgiu ! Je vais essayer de modifier ce paramétrage.
Je ferais un retour si ça marche
J.
Hors ligne
#11 Wed 29 May 2019 15:57
- jlavaure
- Participant assidu
- Date d'inscription: 20 Apr 2013
- Messages: 203
Re: QGIS 3 / Postgres: Erreur connexion max
@tumasgiu :
Bon malgré le changement de la valeur idle_in_transaction_session_timeout ça ne ferme toujours pas les sessions ... je vais essayer avec "1 hour" au lieu de "86400000 ms".
Hors ligne
#12 Wed 29 May 2019 22:10
- francis_31
- Participant actif
- Date d'inscription: 24 Nov 2010
- Messages: 88
Re: QGIS 3 / Postgres: Erreur connexion max
Bonsoir,
sur un postgresql 9.6 avec utilisation de QGIS par trois utilisateurs (utilisation fréquente) nous ne rencontrons pas ce problème.
Sur les trois postes deux sont en version 3.4 et un en version 3.6.
La 3.4 est également installée depuis qu'elle est devenu LTR, même un peu avant.
J'ai pas vérifié le paramètre max_connexion.
Vous l'avez déjà fait mais oui à ma connaissance la modification du fichier postgresql .conf demande le redémarrage du service pour prise en compte, pour le fichier pg_hba.conf il y a une commande qui offre la possibilité de forcer la re-lecture du fichier sans redémarrer le service : pg_ctl en mode reload.
Hors ligne