Oracle
 sql >> Baza danych >  >> RDS >> Oracle

java.sql.SQLException:Listener odrzucił połączenie z następującym błędem:ORA-12519, TNS:nie znaleziono odpowiedniej obsługi usług

Twoja aplikacja wielowątkowa otwiera zbyt wiele połączeń/sesji. W związku z tym słuchacz przerywa i blokuje nowe połączenia na chwilę.

Najpierw sprawdź wykorzystanie zasobów bazy danych:

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

Sprawdź, czy MAX_UTILIZATION dla Twoich procesów lub sesji zbliża się do LIMIT_VALUE. Jeśli tak, powinieneś:

  1. Użyj puli połączeń DB, aby udostępnić Connection obiekty między wątkami. Lub
  2. Zwiększ liczbę procesów/sesji, które Oracle może obsługiwać jednocześnie.

Właściwie łączenie połączeń (#1) powinno być zawsze wykonywane. W inny sposób nie można skalować aplikacji. Sprawdź DBCP Apache Commons dla szczegółów. W przypadku #2 otwórz nową sesję SQL*Plus jako SYSTEM i uruchom:

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

w celu zwiększenia współbieżności zaplecza. Następnie RESTART Bazę Danych. WAŻNE!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wywołaj procedurę składowaną Oracle z aplikacji Java za pomocą hibernacji i puli połączeń c3p0

  2. Nie można poprawnie zainstalować Oracle Developer Tools for Visual Studio 2019

  3. Jak mogę się dowiedzieć, czy baza danych Oracle jest ustawiona na automatyczne zatwierdzanie?

  4. MAX() w ORACLE SQL

  5. Jak uzyskać wartość UTC dla SYSDATE w Oracle?