sql >> Databáze >  >> RDS >> Oracle

Co může způsobit občasné chyby ORA-12519 (TNS:nebyla nalezena žádná vhodná obsluha).

Nevím, jestli to bude odpověď všech, ale po nějakém pátrání jsme přišli na toto.

Chyba je zjevně způsobena skutečností, že posluchač nepřijímal připojení, ale proč bychom dostávali tuto chybu, když se ostatní testy mohly připojit v pořádku (také jsme se mohli bez problémů připojit přes sqlplus)? Klíčem k problému nebylo to, že jsme se nemohli připojit, ale to, že to bylo přerušované

Po nějakém zkoumání jsme zjistili, že během nastavování třídy byla vytvořena některá statická data, která udržela otevřená připojení po celou dobu životnosti testovací třídy a vytvářela nová. Nyní, i když byly všechny prostředky správně uvolněny, když tato třída přešla mimo rozsah (samozřejmě prostřednictvím bloku konečně{}), vyskytly se během běhu některé případy, kdy tato třída spolkla všechna dostupná připojení (dobře, špatné cvičné upozornění – toto byl testovací kód jednotky, který se připojoval přímo, nikoli pomocí fondu, takže stejný problém nemohl nastat v produkci).

Oprava spočívala v tom, že tato třída nebyla statická a nespouštěla ​​se v nastavení třídy, ale místo toho byla použita v metodách setUp a tearDown podle metody.

Takže pokud se vám tato chyba objeví ve vašich vlastních aplikacích, udeřte na toho zlého chlapce profilovku a zjistěte, zda nemáte únik připojení. Doufám, že to pomůže.



  1. Snímky databáze SQL Server -3

  2. Jaký je připojovací řetězec sql, který musím použít pro přístup k localhost\SQLEXPRESS s ověřováním Windows nebo ověřováním SQL?

  3. Jak vám může analýza pracovní zátěže SQL pomoci?

  4. Výjimka v hlavním vláknu java.sql.SQLException:Přístup odepřen uživateli ''@'localhost' (pomocí hesla:NE)