JDBC Connection a wielowątkowość

JDBC Connection a wielowątkowość
CP
  • Rejestracja:około 15 lat
  • Ostatnio:około 12 lat
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

edytowany 1x, ostatnio: cpprogramm
galleanv
  • Rejestracja:prawie 15 lat
  • Ostatnio:prawie 9 lat
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.

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.

galleanv
Można też przyjąć że wszyscy to idioci, poza tym pieprzenie się z socketami, protokołem komunikacji itp itd nie jest łatwe
0

Nie wyzwalem nikogo, ani nie mowilem nic o socketach.

CP
  • Rejestracja:około 15 lat
  • Ostatnio:około 12 lat
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? ;]

edytowany 2x, ostatnio: cpprogramm
0

Np. jest Java RMI.

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

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


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
CP
  • Rejestracja:około 15 lat
  • Ostatnio:około 12 lat
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.