Mam aplikację Mule, która łączy się z bazą danych Oracle. Aplikacja jest interfejsem SOAP, które umożliwia wykonywanie procedur składowanych SQL. Mój konektor jest skonfigurowany do korzystania z łączenia połączeń i monitorowałem same połączenia. Mam maksymalny rozmiar puli równy 20, a podczas wykonywania połączeń z bazą danych widzę, jak otwierają się (netstat -ntl | grep PORTNUMBER).Zamknij połączenia z bazą danych po nieaktywności
tcp4 0 0 IP HERE OTHER IP HERE SYN_SENT
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 0 0 IP HERE OTHER IP HERE ESTABLISHED
tcp4 10 0 IP HERE OTHER IP HERE ESTABLISHED
Po zakończeniu połączeń oczekuję, że połączenia zostaną zamknięte po upływie określonego czasu. Tak się nie stało. Zauważyłem, że gdy aplikacja działała na serwerze, połączenia były nadal otwarte od lipca (to kilka miesięcy temu).
Jedynym sposobem, jaki znalazłem do tej pory, że faktycznie zamyka połączenia po kilku sekundach, jest włączenie transakcji XA i ustawienie limitu czasu połączenia. Jednak całkowicie zakłóca to wydajność aplikacji i jest niepotrzebne narzut.
Jak powinienem dodać taki limit czasu bez korzystania z połączeń XA? Chciałbym, aby moje połączenia z bazą danych zostały zamknięte po 20 sekundach bezczynności.
Dziękuję
Edit: Generic złącze baza danych jest używana - Mule wersja 3.8.0 Mamy maksymalną liczbę połączeń, które są dopuszczone do bazy danych, mamy wiele instancji tego biegu przepływu. Oznacza to, że połączenia są zarezerwowane przez jedną z instancji, co powoduje, że inne instancje nie mogą uzyskać nowych połączeń.
Specyficznym problemem, który mieliśmy, było to, że jedna instancja nadal miała zarezerwowane 120 połączeń, mimo że ostatni raz działała kilka tygodni wcześniej. Gdy druga instancja zażądała więcej połączeń, mogła uzyskać tylko 30, ponieważ maksymalna po stronie bazy danych wynosi 150.
Edytowałem moje pytanie. – DenCowboy