Lors de la connexion à une base de données PostgreSQL, rencontrer l'erreur "org .postgresql.util.PSQLException : FATAL : désolé, trop de clients déjà » indique que la limite autorisée de connexions simultanées a été dépassé.
Cela se produit lorsque le code ouvre plusieurs connexions à la base de données sans les fermer correctement. Bien que la destruction et le garbage collection d'une classe libèrent normalement son emprise sur une connexion, il est essentiel de fermer explicitement les connexions à la base de données.
Un exemple de correctif consiste à ajouter le code suivant dans n'importe quelle classe qui crée une connexion :
protected void finalize() throws Throwable { try { your_connection.close(); } catch (SQLException e) { e.printStackTrace(); } super.finalize(); }
Cela garantit que la connexion est libérée lorsque la classe est récupérée.
Il est également utile de vérifier le nombre maximum de connexions autorisées par PostgreSQL :
show max_connections;
La valeur par défaut est 100. Si vous avez besoin de plus de connexions, vous pouvez augmenter cette valeur en éditant le fichier postgresql.conf. Recherchez "max_connections" et ajustez-le en conséquence.
Pour déterminer quelles connexions sont maintenues ouvertes ou quels programmes ne les libèrent pas, vous pouvez utiliser les commandes suivantes :
SELECT * FROM pg_stat_activity;
SELECT COUNT(*) from pg_stat_activity;
Enfin, pensez à suivre les connexions qui se créent et à vous assurer qu'elles sont toutes correctement fermées.
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!