AWWW-1st3.6-w09.tresc-1.0-Slajd10
Źródła danych (obiekty DataSource)
Preferowanym od wersji JDBC 2.0 mechanizmem uzyskiwania połączeń z bazą danych przez aplikacje Java są źródła danych (obiekty DataSource). Obiekt DataSource reprezentuje rzeczywiste źródło danych, najczęściej relacyjną bazę danych i może być postrzegany jako „fabryka połączeń” z bazą danych.
Typowo źródła danych są konfigurowane deklaratywnie przez administratora serwera aplikacji. Serwer tworzy je w oparciu o zawartość pliku konfiguracyjnego i udostępnia aplikacjom poprzez serwis nazw JNDI (Java Naming and Directory Interface). Dzięki takiemu podejściu, fizyczne parametry źródła danych nie są zaszyte w kodzie aplikacji, ale zawarte w pliku konfiguracyjnym serwera.
Implementacje DataSource mogą obsługiwać mechanizm connection pooling, pozwalający zredukować czas poświęcany przez aplikacje na otwieranie połączenia z bazą danych. Mechanizm ten jest szczególnie ważny w aplikacjach WWW, których komponenty typowo wykonują proste operacje na bazie danych. Redukcja czasu spędzanego na otwarcie połączenia może znacząco skrócić czas przeznaczany w nich na komunikację z bazą danych.
Mechanizm connection pooling polega na utrzymywaniu puli otwartych połączeń z bazą danych. Minimalna i maksymalna liczba połączeń w puli to typowo parametry konfiguracyjne źródła danych. Gdy aplikacja otwiera połączenie, otrzymuje jedno z połączeń z puli. Gdy aplikacja zamyka połączenie, jest ono zwracane do puli i będzie mogło być ponownie wykorzystane. Ważne jest aby aplikacja jawnie zamykała połączenie, gdy już go nie potrzebuje, tak aby to samo połączenie było możliwie szybko dostępne dla obsługi innych żądań.