JDBC Connection a wielowątkowość

JDBC Connection a wielowątkowość
CP
  • Rejestracja: dni
  • Ostatnio: dni
2

Witam
Piszę aplikację wielowątkową. Serwer po nawiązaniu połączenia z klientem odsyła całą komunikację z nim do oddzielnego wątku (takie założenie na razie ;] ).
I teraz jeżeli chodzi o operacje na bazie danych to:

  1. czy można pozwolić, aby każdy wątek korzystał z tego samego połączenia Connection ustanowionego przez serwer z bazą danych (Singleton)
  2. czy może każdy wątek powinien ustanawiać własne połączenie (ThreadLocal<Connection>)
  3. czy może jeszcze jakieś inne rozwiązanie

Z góry dziękuję za sugestie.

PS. Na razie baza danych to SQLite

galleanv
  • Rejestracja: dni
  • Ostatnio: dni
0

Pierwszy link po wpisaniu "jdbc multithreaded connection" do wyszukiwarki powiedział mi że nie można współdzielić tego samego połączenia.
Wątek per klient to nie jest rozwiązanie.
Jeżeli tworzysz serwer, poczytaj o JEE, może drzwi które wyważasz są już otwarte.

  • Rejestracja: dni
  • Ostatnio: dni
0

Serwer powinien tworzyc pule polaczen (javax.sql.ConnectionPoolDataSource) czy pochodne. Kiedy pula jest wykonczona, serwer czeka az jakies polaczenie zostanie zwrocone. Samo czekanie jest automatycznie zaimplementowane w getPooledConnection() itp. Przy tym nalezy zwrocic uwage na to aby zawsze wywolac connection.close() poniewaz to zwraca polaczenie do puli, inaczej jest leak.
Sugerowanie JavaEE na podstawie pierwszego postu jest... hmmm.. zastanawiajace.

  • Rejestracja: dni
  • Ostatnio: dni
0

Nie wyzwalem nikogo, ani nie mowilem nic o socketach.

CP
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie może być JEE bo ma być JSE, po prostu. Acha, i jeżeli komunikacja przez sockety jest taka zła, to co radzicie? ;]

  • Rejestracja: dni
  • Ostatnio: dni
0

Np. jest Java RMI.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Nie wiem co ta aplikacja ma robić ale moze RMI?

CP
  • Rejestracja: dni
  • Ostatnio: dni
0

OK. Dzięki, poczytam.

Aplikacja to projekt na studiach: klient w Swingu gdzie zarządza się kontem itp, serwer dla łączenia z bazą i komunikacji z klientami

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.