2012-11-29 16 views
6

używam bazy danych Oracle w środowisku Windows i uruchomienie/servlet aplikację internetową JSP w Tomcat. Po wykonaniu niektórych operacji z aplikacją pojawia się następujący błąd.ORA-12518, TNS: słuchacz nie mógł oddać się połączenie klienta

ORA-12518, TNS: słuchacz nie mógł oddać się połączenie klienta

może ktoś mi pomóc zidentyfikować przyczynę tego problemu i zaproponować mi rozwiązanie?

+1

http://www.dba-oracle.com/sf_ora_12518_tns_listener_could_not_hand_off_client_connection.htm – JiKra

Odpowiedz

0

Jeżeli z jednego dnia na inny problem wskazuje na brak wyraźnych powodów, dodać te poniższe linie na końcu pliku listner.ora. Jeśli zmienna środowiskowa ORACLE_HOME jest ustawiona tak:

(ORACLE_HOME = C: \ oracle11 \ app \ oracle \ produktu \ 11.2.0 \ server)

wierszami, aby dodać to:

ADR_BASE_LISTENER =C: \ oracle11 \ ok \ Oracle \

DIRECT_HANDOFF_TTC_LISTENER = OFF

2

Rozwiązaniem tej kwestii jest zwiększenie liczby procesów:

  1. Otwórz okno wiersza polecenia
  2. sqlplus/as sysdba
  3. startup force;
  4. show parameter processes; - To pokazuje procesy przeznaczono 150, i zwiększy liczbę do 800 teraz
  5. alter system set processes=800 scope=spfile;

Próbowałem i przetestowałem.

2

Przebiegłem ten sam problem, w moim przypadku była to nowa instalacja klienta Oracle na nowym komputerze, który podawał błąd, pracowali inni klienci, więc wiedziałem, że to nie będzie poprawka do bazy danych konfiguracja. tnsping działało poprawnie, ale program sqlplus nie powiódł się z błędem listenera ora-12518.

Posiadałem wpis tnsnames.ora z identyfikatorem SID, a nie nazwą service_name, po naprawieniu tego błędu nadal znajdowałem ten sam błąd i stwierdziłem, że mam również nieprawidłową nazwę usługi. Kiedy to naprawiłem, błąd zniknął.

+0

I upewnij się, że słuchacz zaczął :) okazji zapytań –

0

wiem, że jest to stara sprawa, ale miałem ten sam problem podczas wykonywania zapytań w mojej aplikacji. Używam klienta Oracle z Ruby on Rails.

Problem zaczął kiedy przypadkowo rozpoczął kilka połączeń z DB i ich nie zamknąć.

Kiedy stałe to wszystko zaczęło znowu działać prawidłowo.

Nadzieja to pomaga inny z tego samego problemu.

1

W moim przypadku stwierdziłem, że dzieje się tak, ponieważ nie zamknąłem poprawnie połączeń z bazą danych w mojej aplikacji. Zbyt wiele połączeń jest otwartych i Oracle nie może uzyskać więcej połączeń. To jest ograniczenie zasobów. Później, kiedy sprawdzałem na forum Oracle, mogłem zobaczyć powody, o których wspomniałem o tym problemie. Niektórzy z nich są.

  1. W większości przypadków dzieje się tak z powodu problemu z siecią.
  2. Na serwerze prawdopodobnie brakuje pamięci i trzeba zamienić pamięć na dysk. Jedną z przyczyn może być proces Oracle zużywający zbyt dużo pamięci.

jeśli jest to druga, proszę sprawdzić rozmiar pliku large_pool_size lub sprawdzić, czy dyspozytor wystarcza dla wszystkich połączeń.

Możesz podać link poniżej w celu uzyskania dalszych szczegółów. https://community.oracle.com/message/1874842#1874842

0

Evan Mam ten sam błąd po aktualizacji do systemu Windows 10. Rozwiązałem go, uruchamiając usługi dla oracle, które są zatrzymane.

uruchomić wszystkie usługi, jak pokazano na poniższym obrazie

enter image description here

Powiązane problemy