Oracle
 sql >> Base de données >  >> RDS >> Oracle

java.sql.SQLException :l'écouteur a refusé la connexion avec l'erreur suivante :ORA-12519, TNS :aucun gestionnaire de service approprié n'a été trouvé

Votre application multithread ouvre trop de connexions/sessions. Par conséquent, l'écouteur abandonne et bloque les nouvelles connexions pendant un certain temps.

Vérifiez d'abord l'utilisation de vos ressources de base de données :

SELECT * FROM v$resource_limit WHERE resource_name IN ('processes','sessions');

Vérifiez si votre MAX_UTILIZATION pour vos processus ou vos sessions se rapproche trop de la LIMIT_VALUE. Si oui, vous devez soit :

  1. Utiliser le regroupement de connexions DB pour partager Connection objets entre les threads. Ou,
  2. Augmentez le nombre de processus/sessions qu'Oracle peut traiter simultanément.

En fait, Connection Pooling (#1) devrait toujours être fait. Une application ne peut pas évoluer autrement. Vérifiez DBCP Apache Commons pour plus de détails. Pour #2, ouvrez une nouvelle session SQL*Plus en tant que SYSTEM et exécutez :

ALTER system SET processes=<n-as-per-number-of-threads> scope=spfile;

pour augmenter la simultanéité du backend. Redémarrez ensuite la base de données. IMPORTANT !