Erreur : "org.postgresql.util.PSQLException : FATAL : désolé, trop de clients déjà"
Lors de la tentative de connexion à un base de données Postgresql, vous pouvez rencontrer ce message d'erreur, indiquant que la limite de connexion a été dépassée.
Cette erreur survient lorsque votre code dépasse le nombre maximum autorisé de connexions simultanées à la base de données Postgresql. Cela se produit généralement lorsque plusieurs connexions sont ouvertes dans une boucle sans être correctement fermées à l'aide de conn.close();. Par conséquent, les connexions ne sont pas libérées lors de la destruction de la classe.
Correction :
Pour résoudre ce problème, mettez en œuvre les étapes suivantes :
protected void finalize() throws Throwable { try { your_connection.close(); } catch (SQLException e) { e.printStackTrace(); } super.finalize(); }
Ce code garantit que la connexion est fermée lorsque le la classe est récupérée.
show max_connections;
La limite par défaut est 100. Ajustez cette valeur si nécessaire.
SELECT * FROM pg_stat_activity;
Débogage :
Augmentation de max_connections :
Pour augmenter le nombre maximum de connexions autorisées, localisez le fichier postgresql.conf et modifiez la ligne suivante :
max_connections=100
Définissez cette valeur sur un nombre plus grand et redémarrez le base de données.
Maximum max_connections :
Exécutez la requête suivante pour déterminer le nombre maximum théorique de connexions :
select min_val, max_val from pg_settings where name='max_connections';
Cependant, il est recommandé pour fixer une limite raisonnable pour empêcher les processus incontrôlables de monopoliser les connexions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!