sql >> Database >  >> RDS >> Oracle

java.sql.SQLException:luisteraar weigerde de verbinding met de volgende fout:ORA-12519, TNS:geen geschikte service-handler gevonden

Uw toepassing met meerdere threads opent te veel verbindingen/sessies. Daarom valt de luisteraar weg en blokkeert hij nieuwe verbindingen voor een tijdje.

Controleer eerst uw DB-resourcegebruik:

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

Controleer of uw MAX_UTILIZATION voor uw processen of sessies te dicht bij de LIMIT_VALUE komt. Zo ja, dan moet u ofwel:

  1. Gebruik DB Connection-pooling om Connection te delen voorwerpen tussen draden. Of,
  2. Verhoog het aantal processen/sessies dat Oracle tegelijkertijd kan onderhouden.

Eigenlijk zou Connection Pooling (#1) altijd moeten worden gedaan. Een applicatie kan anders niet opschalen. Controleer Apache Commons DBCP voor details. Open voor #2 een nieuwe SQL*Plus-sessie als SYSTEEM en voer het volgende uit:

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

om de gelijktijdigheid van de backend te vergroten. HERSTART vervolgens de database. BELANGRIJK!



  1. Database-ontwerp:EAV-opties?

  2. Aangepaste tekenreeksen voor datum-/tijdnotatie ondersteund door FORMAT() in SQL Server

  3. Lijst met alle externe sleutels PostgreSQL

  4. Javascript fusion chart-exportcode toepassen op PHP, MySql-code