JDBC Connection a wielowątkowość

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

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.

0

Nie wyzwalem nikogo, ani nie mowilem nic o socketach.

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? ;]

0

Np. jest Java RMI.

0

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

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

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