W aplikacji internetowej Java, nad którą pracuję, używamy OracleConnectionPoolDataSource dla funkcji puli połączeń z bazą danych. Każde połączenie getConnection zawiera identyfikator Oracle ID użytkownika i hasło. Tak więc każdy użytkownik w pewnym sensie kończy swoją własną pulą połączeń z bazą danych.Ustawianie i aktualizowanie właściwości puli połączeń (OracleConnectionPoolDataSource) w celu uzyskania najlepszej wydajności
Obecnie używamy domyślnych wartości dla większości właściwości. Obejmuje
- MinLimit ustawiony na 0
- MaxLimit zestaw do Integer.MAX_VALUE
- MaxStatementsLimit ustawiony na 0
- InactivityTimeout zestaw do 0
- TimeToLiveTimeout zestaw do 0
- AbandonedConnectionTimeout zestaw do 0
- PropertyCheckInterval zestawu do 900
- ConnectionWaitTimeout zestaw do 0
Więcej informacji na temat tych właściwości można znaleźć na Connection Cache Properties.
Obecnie nie mamy żadnych problemów z rażącym połączeniem z bazą danych, ale myślę, że wydajność może być lepsza. Moje pytanie brzmi: czy ktoś ma dobrą radę lub dobre źródło informacji na temat tego, co powinniśmy wziąć pod uwagę przy dostosowywaniu tych wartości.
InactivityTimeout: Po wygaśnięciu funkcji InactivityTimeout fizyczne połączenie zostanie zamknięte. Jednak rozmiar pamięci podręcznej nie może zmniejszać się poniżej wartości minLimit, o ile została ustawiona. - To jest z dokumentacji Oracle i mówi, że minLimit nie zmniejszy się, nawet jeśli wszystkie obiekty połączeń zostaną zamknięte przez timeout. Czy to oznacza, że pozwala czerpać nieświeży obiekt z puli? http://docs.oracle.com/cd/B14117_01/java.101/b10979/conncache.htm#CDEBCBJC –