Algorytm ponownych prób połączenia (dla połączeń TCP/IP)

TCP/IP połączenia, jeśli klient jest uruchomiony system Microsoft Windows XP lub nowszy, gdy obie nazwy partner w pamięci podręcznej, dostępu do danych dostawca jest jednakową algorytm ponów próbę połączenia.Dotyczy to zarówno dla początkowego połączenia z sesja i ponowne łączenie po utracie ustanowione połączenie.Po otwarciu połączenia wykonanie kroków pre-login i logowanie zabiera dodatkowy czas.

Ostrzeżenie

Czas spędzony w Otwieranie połączenia mogą przekraczać czasu ponawiania ze względu na czynniki zewnętrzne, takie jak powolne wyszukiwania DNS wolne Centrum dystrybucji kluczy (KDC) domena kontrolera i Kerberos, czas spędzony kontaktowanie Przeglądarka SQL Server, przeciążenia sieci i tak dalej.Takie czynniki zewnętrzne można uniemożliwić nawiązywanie dublowanego bazy danych klient.Ponadto czynniki zewnętrzne może spowodować dłużej otworzyć niż przeznaczonego ponów próbę połączenia czas.Informacje na pomijanie DNS i Przeglądarka SQL Server dla próby połączenia początkowego partner, zobacz Nawiązywania połączenia początkowego bazą dublowanie sesji.

Jeśli próba połączenia kończy się niepowodzeniem lub próba czas wygaonie, zanim się powiedzie, danych dostawcy próbuje partner.Jeśli połączenie nie jest otwarty przez ten punkt, dostawca przemiennie próbuje nazwy partner początkowy i pracy awaryjnej, aż do otwarcia połączenia lub limit czasu logowania okresu.Logowanie domyślne czas-okresu wynosi 15 sekund.Firma Microsoft zaleca logowania czas-okresu się co najmniej 5 sekund.Określanie mniejszej czas-okresu może zapobiec prób połączenia pomyślne.

Czas ponawiania jest procentową okresu logowania.Czas ponawiania próby połączenia jest większy w każdej Rundy kolejnych.W pierwszym round próba czas dla każdego z dwóch prób jest 8 procent okresu całkowita logowania.W każdej rundzie kolejnych Algorytm ponownych prób wydłuża czas maksymalną ponawiania o tę samą kwotę.W ten sposób czas ponawiania dla pierwszej próby połączenia osiem jest następująca:

8%, 8%, 16%, 16%, 24%, 24%, 32%, 32%

Próba czas jest obliczana za pomocą następującego wzoru:

RetryTime**=PreviousRetryTime+(** 0.08 *LoginTimeout)

Gdy PreviousRetryTime jest początkowo 0.

Na przykład przy użyciu domyślnego logowania czas-poza okres 15 sekund, logowaniaczassię = 15.W takim przypadek czas ponawiania przydzielone w trzech pierwszych rundach są następujące:

Round

RetryTime obliczeń

Ponów próbę czas na próbę

1

0 +(0.08 * 15)

1,2 sekund

2

1.2 +(0.08 * 15)

2,4 sekund

3

2.4 +(0.08 * 15)

3,6 sekund

4

3.6 +(0.08 * 15)

4,8 sekund

Następujący rysunek ilustruje te ponowić próbę czasu dla połączenia kolejnych prób, z których każdy limit czasu.

Maksymalne opóźnienia ponownych prób dla 15-sekundowego limitu czasu logowania

Limit czasu logowania domyślny maksymalny czas przydzielony na pierwsze trzy zaokrągla liczbę prób połączenia jest 14,4 sekund.Gdyby każda próba do używania wszystkich jego wyznaczonym czasie tylko 0,6 sekund czas pozostałyby przed okresu czasu logowania się.W takim przypadek czwartego round mogłoby być skrócony, zezwalając tylko końcowego szybkiego próba połączenia przy użyciu nazwy początkowej partner.Jednak próba połączenia może nie mniejszy niż jego czas przydzielonego ponawiania, szczególnie w rundach później.Na przykład komunikat o błędzie sieci może spowodować, że próba przed próba czas wygasa.Jeśli wcześniejsze próby nie ze względu na błąd sieciowy, dodatkowy czas będzie dostępna dla czwartego zaokrąglone, a czasem zaokrągla liczbę dodatkowych.

Inna przyczyna nieudanej próby jest wystąpieniem nieaktywnym serwerze, kiedy wystąpienie serwera jest zaangażowany w przypadku ich braku w swojej bazie danych.przypadek opóźnienia ponownych prób jest nałożone, aby zapobiec przeciążeniu partnerów z szybkim tempie prób połączeń klientów.

Ostrzeżenie

Gdy obie nazwy partner są dostępne, jeśli logowania czas-okresu jest nieskończone klient usiłuje połączyć się z serwerami, przemian Nazwa partner początkowego i pracy awaryjnej Nazwa partner.

Ponów próbę opóźnienia podczas pracy awaryjnej

Jeżeli klient próbuje połączyć się z partner przełączając awaryjnie, partner natychmiast odpowiada jest nieaktywny.przypadek każdej Rundy próby połączenia są znacznie briefer niż przydzielony ponawiania czas.Oznacza to, że wiele zaokrągla liczbę prób połączenia, może się zdarzyć przed okresu czasu logowania się.Aby uniknąć przeciążenia partnerom szybką serią prób połączeń podczas pracy awaryjnej, dostawca danych programu access dodaje ponawiania krótkie opóźnienie po każdym cyklu ponów próbę.Długość opóźnienia danego ponownych prób jest określona przez algorytm opóźnienia ponownych prób.Po pierwszej rundzie opóźnienie jest 100 milisekund.Po każdym z trzech kolejnych rund podwaja opóźnienia ponownych prób — aby 200, 400, 800.Dla wszystkich rund później opóźnienia ponownych prób jest 1 sekundy, dopóki nie powiedzie się próba połączenia, lub limitu czasu.

Ostrzeżenie

Jeśli wystąpienie serwera zostanie zatrzymana, żądanie połączenia nie natychmiast.

Następujący rysunek ilustruje wpływ opóźnienie ponawiania prób połączeń podczas ręczna praca awaryjna, w którym partnerzy przełączyć ich ról.Identyfikator logowania czas-okresu wynosi 15 sekund.

Algorytm opóźnienia ponownych prób