Witam, mam pewien problem, otóż pisze aplet do obsługi bazy danych przy pomocy bazy Oracle Xe. Do łączenia z baza korzystam z z biblioteki ojdbc14.jar. Wszystko fajnie gra ale do czasu kiedy mam wprowadzić dane do wielu tabel po kolei program(wywoływane są procedury które maja za zadanie wprowadzić pewne dane do odpowiednich tablic, a następnie zwrócić identyfikatory tych wprowadzonych danych) wywala błąd :
java.sql.SQLException: Listener refused the connection with the following error: ORA-12519, TNS:no appropriate service handler found.
Błąd ten pojawia się losowo, czasami program działa poprawnie(nie występują żadne błędy). Jeżeli wykonuje mniej zapytań sql-owych(czyli ok4 ) to program działa normalnie. Moje podejrzenie pada na connector, ponieważ ten sam program działa bez najmniejszych problemów na mysql-u. Próbowałem też innych connectorow ojdbc5 oraz ojdbc6, ale problem nie znika. Zatem moje pytanie czy może ktoś napisać jakiego connectora powinienem użyć(podobno jest jakiś jdbc10g.jar ale nie mogę go znaleźć).
A jaki masz ustawiony poziom izolacji transakcji ?
Czy po skończonej operacji robisz conn.commit() ?
Czy każda operacja na tabeli to 1 transakcja czy wszystko spięte jest w 1
Jak współdzielisz połączenie między procesami? Czy jest zamykana po skończonej operacji, czy za każdym razem otwierane nowe?
Jeżeli otwierasz połączenia i nie zamykasz to możesz przekroczyć limit aktywnych połączeń i być może dlatego masz błąd.
A może tak jak piszą w tym wątku:
http://forums.oracle.com/forums/thread.jspa?messageID=1145120
Stworzyć połączenie za pomocą:
OracleDataSource ods = new OracleDataSource();
ods.setUser("username");
ods.setPassword("password");
ods.setURL("jdbc:oracle:thin:@localhost:1521:XE");
ods.getConnection();
Domyślam się że w aplikacji co chwile zamykasz i otwierasz połączenia do bazy danych? Jeśli tak to jest to bardzo zła praktyka, lepiej użyć singeltona jeśli to jest prosta aplikacja lub puli połączeń.
Dzięki za odpowiedz. Tak mi się zdaje ze problem rozwiązałem, tak jak napisaliście miałem za dużo otwartych połączeń.