Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

java.sql.SQLException:O ouvinte recusou a conexão com o seguinte erro:ORA-12519, TNS:nenhum manipulador de serviço apropriado encontrado


Seu aplicativo multithread está abrindo muitas conexões/sessões. Portanto, o ouvinte está descartando e bloqueando novas conexões por um tempo.

Verifique seu uso de recursos de banco de dados primeiro:
SELECT * FROM v$resource_limit WHERE resource_name IN ('processes','sessions');

Verifique se sua MAX_UTILIZATION para seus Processos ou Sessões está chegando muito perto de LIMIT_VALUE. Se sim, você deve:
  1. Use o pool de conexões de banco de dados para compartilhar Connection objetos entre threads. Ou,
  2. Aumente o número de processos/sessões que a Oracle pode atender simultaneamente.

Na verdade, o Pool de Conexões (#1) deve sempre ser feito. Um aplicativo não pode ser dimensionado de outra forma. Verifique Apache Commons DBCP para detalhes. Para #2, abra uma nova sessão SQL*Plus como SYSTEM e execute:
ALTER system SET processes=<n-as-per-number-of-threads> scope=spfile;

para aumentar a simultaneidade de back-end. Em seguida, REINICIE o banco de dados. IMPORTANTE!