Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wymusić ponowne wykorzystanie połączeń w puli jdbc?

W rzeczywistości nie korzystasz z puli połączeń. ConnectionPoolDataSource nie jest przeznaczony do bezpośredniego użycia. Jest przeznaczony jako (specjalne) DataSource dla PooledConnection obiekty, które są następnie utrzymywane w puli połączeń przez (normalne) DataSource implementacja zapewniająca łączenie połączeń.

Zwykły programista nie powinien używać ConnectionPoolDataSource bezpośrednio, jest przeznaczony do użytku z pulami połączeń dostarczanych przez serwery aplikacji lub do umieszczenia w DataSource ogólnego przeznaczenia które zapewniły łączenie połączeń.

Gdy Connection zostanie zażądany z puli połączeń, pobierze istniejące PooledConnection (lub poproś o nowy z jego ConnectionPoolDataSource ), pobierz Connection i zwróć to użytkownikowi. Gdy użytkownik zamknie Connection , PooledConnection zasygnalizuje pulę połączeń, że jest ponownie dostępna.

W tym przypadku tworzysz PooledConnection , pobierając Connection z niego, a następnie odrzuca PooledConnection . Oznacza to, że PooledConnection zostaje porzucone, a jego fizyczne połączenie z bazą danych nie może być ponownie użyte i zostanie zamknięte/odrzucone, gdy zostanie ostatecznie zebrane śmieci (zwykle, gdy pula połączeń chce zamknąć fizyczne połączenie, wywoła funkcję close() na PooledConnection ).

Musisz albo użyć puli połączeń dostarczonej przez serwer aplikacji, albo użyć puli połączeń ogólnego przeznaczenia, takiej jak DBCP, c3p0 lub BoneCP.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kopia zapasowa MySQL Amazon RDS

  2. PHP:Pokaż okno dialogowe potwierdzenia tak/nie

  3. jak znaleźć pierwszy i ostatni rekord z tabeli mysql

  4. Objaśnienie struktury MySQL High Availability Framework – część I:Wprowadzenie

  5. użyj zmiennej dla nazwy tabeli w mysql sproc