Java+oracle xe problem JDBC

0

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źć).

0

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.

0

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ń.

0

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ń.

1 użytkowników online, w tym zalogowanych: 0, gości: 1