Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ustawienia limitu czasu w sterowniku JDBC mogą służyć do określania priorytetów czasu odpowiedzi aplikacji. Większość limitów czasu sterownika, domyślnie, określa priorytet oczekiwania na wynik w celu zapewnienia spójności danych. Upewnij się, że wybierasz limity czasu odpowiednie dla potrzeb aplikacji.
W przypadku początkowego połączenia loginTimeout jest używane:
-
loginTimeoutto czas oczekiwania sterownika w sekundach na nawiązanie połączenia z serwerem. Jeśli ta kwota zostanie przekroczona, zostanie zwrócony błąd i nie zostanie nawiązane otwarte połączenie. Wartość zero wskazuje, że limit czasu jest domyślnym limitem czasu systemu, który wynosi 30 sekund w wersjach 11.2 i nowszych. W przypadku wersji 10.2 i poniżej domyślny limit czasu wynosi 15 sekund. Każda wartość niezerowa oznacza liczbę sekund, przez które sterownik powinien czekać, zanim nastąpi przekroczenie czasu połączenia zakończonego niepowodzeniem. Jeśli stale występują problemy z nawiązaniem połączenia ze sterownikiem JDBC, może być konieczne zwiększenie tego limitu czasu do 90, a nawet 120 sekund.
Po nawiązaniu połączenia queryTimeout, cancelQueryTimeout i lockTimeout są używane podczas wykonywania instrukcji.
socketTimeout służy do komunikacji sterowników z serwerem.
-
queryTimeoutto czas, w sekundach, przez który sterownik będzie czekał po wysłaniu polecenia „execute” do serwera, na otrzymanie odpowiedzi z serwera zawierającej dane. Jeśli ten czas zostanie przekroczony, polecenie zostanie anulowane. Przekroczenie tego limitu czasu nie powoduje zamknięcia połączenia. Wartość domyślna to -1, co oznacza nieskończony limit czasu. -
cancelQueryTimeoutto czas, w sekundach, sterownik czeka na potwierdzenie anulowania przez serwer, przed wymuszonym zakończeniem/zamknięciem połączenia. Oznacza to, że sterownik czeka łączną ilośćcancelQueryTimeoutplusqueryTimeoutsekund, zanim połączenie zostanie zamknięte. Ustawienie tego limitu czasu na wartość niezerową zapewnia, że aplikacje mogą zachować czas odpowiedzi, jeśli wystąpi awaria sieci lub komunikacji z serwerem, gdy upłynął limit czasu zapytania. Wartość domyślna dla tej właściwości to -1, czyli nieskończony czas oczekiwania. -
lockTimeoutto czas oczekiwania na zwolnienie blokady, w przypadkach, gdy istnieje wykonywanie instrukcji blokowania blokady. Przekroczenie tego limitu czasu nie powoduje zamknięcia połączenia. Wartość domyślna dla tej właściwości to -1, czyli nieskończony czas oczekiwania. -
socketTimeoutdotyczy wszystkich komunikacji gniazd z serwerem. Jeśli serwer zatrzymuje komunikację ze sterownikiem, nie potwierdzając lub odpowiadając na dane, sterownik czeka na wartośćsocketTimeoutprzed zamknięciem połączenia. Ustawienie tego limitu czasu na wartość niezerową gwarantuje, że aplikacje będą reagować, jeśli wystąpi awaria sieci lub komunikacji z serwerem. Wartość domyślna to 0, co oznacza nieskończony limit czasu. Upewnij się, żesocketTimeoutjest większy niżqueryTimeout, aby uniknąć wyjątków przekroczenia limitu czasu gniazda w okniequeryTimeout. Podobnie upewnij się, żesocketTimeoutjest większe niżcancelQueryTimeoutw celu uniknięcia wyjątków limitu czasu gniazda podczas oknacancelQueryTimeout.
Rozsądne wartości limitu czasu aplikacji zależą od priorytetów aplikacji. Ustawienie niższych wartości limitów czasu określa priorytet reakcji aplikacji na spójność danych. Po osiągnięciu limitu czasu aplikacje muszą zdecydować o najlepszym kursie działania. Ta decyzja jest oparta na wykonywanej akcji bazy danych. Na przykład w przypadku SELECT instrukcji decyzja może dotyczyć zgłaszania błędu użytkownikowi lub ponownego nawiązywania połączenia i ponawiania próby. W przypadku INSERT lub UPDATE wyrażeń decyzja ta może być inna.
Dla aplikacji responsywnej, loginTimeout i queryTimeout powinny być ustawione na stosunkowo niskie wartości. Podobnie, cancelQueryTimeout należy ustawić na niską wartość, aby upewnić się, że sterownik nie czeka zbyt długo, aż serwer zatwierdzi anulowanie zapytania, gdy queryTimeout zostanie przekroczony. Na koniec należy ustawić zabezpieczenie, aby sterownik nie czekał zbyt długo w sytuacjach, gdy socketTimeout łączność z serwerem jest przerwana (przerwa w sieci, awaria serwera i tym podobne).
Podsumowanie właściwości
| Majątek | Description | Default | Wynik połączenia |
|---|---|---|---|
loginTimeout |
Liczba sekund, przez które sterownik powinien czekać przed upływem limitu czasu nieudanego połączenia. | 30 sekund [11.2+], w przeciwnym razie 15 sekund |
Zamknięte połączenie |
queryTimeout |
Liczba sekund oczekiwania przed anulowaniem zapytania. | -1 [Nieskończone limit czasu] | Otwieranie połączenia |
cancelQueryTimeout |
Liczba sekund oczekiwania na potwierdzenie anulowania zapytaniaTimeout. | -1 [Nieskończone limit czasu] | Zamknięte połączenie |
lockTimeout |
Liczba milisekund oczekiwania przed tym, jak baza danych zwróci błąd upłynięcia czasu blokady. | -1 [Nieskończone limit czasu] | Otwieranie połączenia |
socketTimeout |
Liczba milisekund, przez którą należy czekać na odczyt lub zapis na gnieździe. | Zero [Nieskończony limit czasu] | Zamknięte połączenie |