sql >> Databasteknik >  >> RDS >> Oracle

java.sql.SQLException:Lyssnaren vägrade anslutningen med följande fel:ORA-12519, TNS:ingen lämplig tjänsthanterare hittades

Ditt flertrådiga program öppnar för många anslutningar/sessioner. Därför tappar lyssnaren och blockerar nya anslutningar ett tag.

Kontrollera din DB-resursanvändning först:

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

Kontrollera om din MAX_UTILIZATION för antingen dina processer eller sessioner närmar sig LIMIT_VALUE. Om ja, bör du antingen:

  1. Använd DB Connection pooling för att dela Connection föremål mellan trådar. Eller,
  2. Öka antalet processer/sessioner som Oracle kan betjäna samtidigt.

Egentligen bör Connection Pooling (#1) alltid göras. En applikation kan inte skalas upp annars. Kolla Apache Commons DBCP för detaljer. För #2, öppna en ny SQL*Plus-session som SYSTEM och kör:

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

för att öka samtidigheten i backend. Starta sedan om databasen. VIKTIGT!



  1. SQL Server prestanda för ändra tabell ändra kolumn ändra datatyp

  2. Det går inte att skapa Multi-AZ Aurora RDS-instans

  3. Hur man grupperar olika forum i PHP-kategorier

  4. mysql-frågan visar flera tabeller från en ID-kolumn