Connection Retry Algorithm (for TCP/IP Connections)
Dla TCP/IP połączenia, jeśli klient jest uruchomiony system Microsoft Windows XP lub nowszym, gdy obie nazwy partner znajdują się w pamięci podręcznej, dostępu do danych dostawca jednakową Algorytm ponownych prób połączenia.Ta zasada obowiązuje zarówno dla początkowego połączenia z sesja, jak i ponownego podłączania po utraceniu jest ustanowione połączenie.Po otwarciu połączenia wykonanie kroków pre-login i logowania zajmuje więcej czas.
Uwaga
Czas w Otwieranie połączenia mogą przekraczać czasu ponawiania ze względu na czynniki zewnętrzne, takie jak powolne wyszukiwania DNS, powolne Centrum dystrybucji kluczy Kerberos/kontrolera domena (KDC), czas spędzony kontaktowanie Przeglądarka SQL Server, przeciążenie sieci i tak dalej.Czynniki zewnętrzne, takie mogą uniemożliwić nawiązanie połączenia z bazą danych dublowane klient.Ponadto czynniki zewnętrzne, może spowodować dłużej otworzyć niż w czasie przydzielonym ponawiania prób połączenia.Aby uzyskać informacje na temat pomijanie serwerów DNS i Przeglądarka SQL Server dla próby połączenia z partner początkowy zobacz Making the Initial Connection to a Database Mirroring Session.
Jeśli próba połączenia nie powiedzie się lub przekroczeniu limitu czas ponownych prób, zanim on zakończy się pomyślnie, Dostawca dostępu do danych próbuje partner.Jeśli połączenie nie jest otwarty przez ten punkt, dostawca naprzemiennie próbuje nazwy partner początkowego i pracy awaryjnej, aż do chwili, kiedy połączenie jest otwarte lub upłynął limit czasu w okresie logowania.Limit czas logowania domyślną jest 15 sekund.Zaleca się, że limit czas logowania się co najmniej 5 sekund.Określanie mniejszego limitu czas może uniemożliwić tych prób połączeń kolejnego.
Czas ponawiania prób jest wartość procentową okresu logowania.Czas ponawiania próby połączenia będzie większa w każdej rundzie następujących po sobie.W pierwszej kolejce, czas ponawiania dla każdej z dwóch prób jest 8 procent okresu całkowita logowania.W każdej rundzie następujących po sobie Algorytm ponownych prób przesłania wydłuża czas maksymalną ponawiania o tę samą wartość.W ten sposób czasu ponawiania dla pierwszej próby połączenia osiem jest następująca:
8%, 8%, 16%, 16%, 24%, 24%, 32%, 32%
Czas ponawiania prób jest obliczany przy użyciu następującej formuły:
RetryTime**=PreviousRetryTime+(** 0.08 *LoginTimeout)
Gdzie PreviousRetryTime początkowo jest 0.
Na przykład, jeśli przy użyciu domyślnego okresu limitu czas logowania 15 sekund LoginTimeout = 15.W tym przypadek czas ponawiania przydzielony w pierwszych trzech Zaokrąglenie są następujące:
Round |
RetryTime Obliczanie |
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 |
Na poniższym rysunku przedstawiono te ponowić próbę czasu dla prób połączeń następujących po sobie, z których każdy limitu czasu.
Dla limitu czasu logowania domyślny maksymalny czas przydzielony na pierwsze trzy zaokrągla liczbę prób nawiązania połączenia jest 14,4 sekund.Jeżeli każda próba do używania wszystkich jego wyznaczonym czasie, tylko 0,6 sekund czas pozostałyby przed okresu czas logowania się.W takim przypadek czwarty round może być skrócony, Zezwalanie tylko na końcowym szybkiego próby nawiązania połączenia przy użyciu nazwy początkowej partner.Próba połączenia może jednak nie w czasie krótszym niż jego czas przydzielonego ponownych prób, szczególnie w nowszym zostanie zaokrąglona.Na przykład, odbieranie błąd sieciowy może spowodować, że podjęto próbę kończy przed ponawiania czas wygasa.Jeśli wcześniejsze próby nie powiodą się ze względu na błąd sieciowy, dodatkowy czas będzie dostępny dla czwartego zaokrąglone i być może, dodatkowe zostanie zaokrąglona.
Inną przyczyną nieudaną próbą jest nieaktywnym serwerze, jak występuje, gdy wystąpienie serwera jest zaangażowany w nie można wykonać w swojej bazie danych.W tym przypadek aby zapobiec przeciążeniu partnerów w krótkim odstępie czasu prób połączenia klientów nakłada się opóźnienia ponownych prób.
Uwaga
Obie nazwy partnera są dostępne, jeśli limit czasu logowania jest nieograniczony, klient próbuje ponownie połączyć się z serwerami przez czas nieokreślony, przełączanie pomiędzy Nazwa partnera początkowego i nazwa partner pracy awaryjnej.
Ponów próbę opóźnienia podczas pracy awaryjnej
Jeśli klient próbuje połączyć się z partner, który jest możliwe za pośrednictwem, partner natychmiast reaguje jest nieaktywny.W takim wypadku każdej rundzie próby połączenia są znacznie briefer niż w czasie przydzielonym ponownych prób.Oznacza to, liczbę zaokrągla liczbę prób nawiązania połączenia może mieć miejsce przed okresu czasu logowania się.Aby uniknąć przeciążenia partnerów szybkiego serią prób połączeń w trybie awaryjnym, Dostawca dostępu do danych dodaje ponawiania krótkie opóźnienie po każdym cykl.Długość opóźnienia ponownych prób danego zależy od algorytmu Opóźnienie ponownych prób.Po pierwszym round opóźnienie wynosi 100 milisekund.Po każdej z trzech kolejnych zaokrągla podwaja się opóźnienia ponownych prób — do 200, 400 do 800.Dla wszystkich później zostanie zaokrąglona Opóźnienie ponownych prób wynosi 1 sekundę, aż do chwili, kiedy próba ustanowienia połączenia kończy się pomyślnie lub upłynął limit czasu.
Uwaga
Jeśli wystąpienie serwera zostanie zatrzymana, żądania połączenia nie natychmiast.
Na poniższym rysunku pokazano wpływu Opóźnienie ponownych prób na próby połączenia podczas ręcznego pracy awaryjnej, w którym partnerów przełączyć się z ich ról.Limit czas logowania to 15 sekund.