Aracılığıyla paylaş


Bağlantı yeniden deneme algoritması (için TCP/IP bağlantıları)

Bir TCP/IP bağlantısı, istemci, Microsoft Windows XP çalışıyorsa veya daha sonra iki ortak adı önbellekte olduğunda, veri sağlayıcısına erişmek için bir bağlantıyı yeniden deneme algoritması uygun.Bu hem başlangıç bağlantı için oturum yapmak için kurulan bir bağlantı kaybettikten sonra yeniden bağlanmayı için geçerlidir.Bir bağlantı açıldıktan sonra pre-login ve oturum açma adımları ek götüren saat.

Not

Bağlantı, yavaş bir DNS aramaları gibi dış etkenler nedeniyle yeniden deneme saat aşan açma için harcanan saat, etki alanı denetleyicisi/Kerberos Anahtar Dağıtım Merkezi (KDC) yavaş, harcanan saat contacting SQL Server Gözatıcısı, ağ sıkışıklığı ve benzeri.Bu tür dış etkenler bir istemci, yansıtılmış bir veritabanına bağlanmasını engelleyebilirsiniz.Ayrıca, dış etkenler bağlantı ayrılan yeniden açtığınızda daha uzun sürmesine neden olabilir.Ilk ortak bağlantı girişimi için DNS ve SQL Server Gözatıcısı'nı atlayarak hakkında bilgi için bkz: Başlangıç bağlantı, bir veritabanına oturum yansıtma yapma.

Veri erişim sağlayıcı, bağlantı girişimi başarısız olur veya başarılı önce yeniden deneme saat sona, diğer ortak çalışır.Bu nokta bir bağlantı açılır, sağlayıcı oturum açma süresi zaman aşımına uğradı ya da bir bağlantı açılır kadar sıra başlangıç ve yerine çalışma ortağı adları çalışır.Varsayılan oturum açma saat aşımı saat 15 saniyedir.Oturum açma saat aşımı saat, en az 5 saniye olması önerilir.Daha küçük bir saat aşımı süresini belirtme herhangi bir bağlantı girişimleri arasında izleyen engelleyebilir.

Yeniden deneme saat, oturum açma saat yüzdesidir.Bağlantı girişimi için yeniden deneme saat, birbirini izleyen her turda büyük.Ilk turda, her iki girişimleri için yeniden deneme saat yüzde 8 olan toplam oturum açma saat.Birbirini izleyen her turda yeniden deneme algoritması, aynı miktarda en fazla yeniden deneme saat artar.Bu nedenle, için yeniden deneme sürelerini ilk sekiz bağlantı girişimleri olduğu gibi:

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

Yeniden deneme saat, aşağıdaki formül kullanılarak hesaplanır:

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

burada PreviousRetryTime başlangıçta ise 0.

Örneğin, 15 saniye, varsayılan oturum açma saat aşımı süresini kullanıyorsanız LoginTimeout = 15.Bu durum, ilk üç olan yuvarlar ayrılan yeniden deneme sürelerini aşağıdaki gibidir:

Round

RetryTime hesaplama

Yeniden deneme girişimi her saat

1

0 +(0.08 * 15)

1,2 saniye

2

1.2 +(0.08 * 15)

2,4 saniye

3

2.4 +(0.08 * 15)

3,6 saniye

4

3.6 +(0.08 * 15)

4,8 saniye

Aşağıdaki şekilde bu gösterilmektedir, her zaman aşımına uğradı, art arda yapılan bağlantı girişimleri için bir kez yeniden deneyin.

Maximum retry delays for 15 second login timeout

Varsayılan oturum açma saat aşımı süresini, bağlantı girişimleri, yuvarlar olan ilk üç ayrılan en fazla saat 14.4 saniyedir.Her girişimde, ayrılan saat, tüm kullanacak şekilde ise yalnızca 0,6 saniye saat önce dönem oturum saat aşımına kalır.O durum, dördüncü yuvarlak, ilk ortak adı'nı kullanarak bağlanmak yalnızca bir son hızlı girişimini izin curtailed.Ancak, bağlantı girişimi, en çok, özellikle sonraki yuvarlar, ayrılan yeniden deneme saat başarısız olabilir.Örneğin, bir ağ hatası alma girişimi yeniden deneme saat sona ermeden önce sona erdirmek neden olabilir.Bir ağ hatası nedeniyle önceki girişimleri başarısız olursa, ek saat yuvarlak ve belki de, dördüncü için kullanılabilir olacaktır ek yuvarlar.

Başka bir nedeni hatalı bir girişimin bir sunucuyu, veritabanı üzerinde neden olarak başarısız olan gerçekleştiriliyor oluşuyor gibi etkin olmayan bir sunucu, örnek.Bu durum, istemcilerin bağlantı girişimleri, hızlı bir art arda ortaklarıyla aşırı yükleme gelen önlemek için bir yeniden deneme gecikmesi nedeniyle belirlenmiştir.

Not

Iki ortağın adı, oturum açma saat aşımı süresini sonsuz, kullanılabilir olduğunda istemci sunuculara sonsuza kadar yeniden ilk ortak adı yerine çalışma ortağı adı arasında geçiş yapma girişiminde bulunur.

Gecikmeleri hata sonrası düzeltme sırasında yeniden deneyin.

Bir istemci üzerinden başarısız olan bir ortakla bağlanmaya çalışırsa, ortak etkin olmadığını hemen yanıtlar.Bu durumda, her bağlantı girişimleri, yuvarlak ayrılan yeniden deneme saat çok briefer.Yani, bağlantı girişimleri, birçok yuvarlar önce dönem oturum zaman aşımına oluşabilir.Bağlantı girişimleri daha hızlı bir dizi ortaklarıyla yerine çalışma sırasında aşırı yükleme önlemek için , veri erişim sağlayıcı her yeniden deneme döngüsü sonra kısa bir yeniden deneme bir gecikme ekler.Yeniden deneme gecikmesi algoritması tarafından verilen yeniden deneme gecikme uzunluğunu belirler.Sonra ilk yuvarlak, gecikme 100 milisaniyedir.Her sonraki üç yuvarlar sonra yeniden deneme gecikmesi ikiye katlar — için 200, 400 ile 800.Sonraki tüm yuvarlar için yeniden deneme gecikmesi 1 bağlantı denemesi, başarılı veya zaman aşımına uğradı kadar saniyedir.

Not

Sonra sunucu örnek durdurdu, bağlantı isteği hemen başarısız olur.

Aşağıdaki şekil, yeniden deneme gecikmesi bağlantı girişimleri ortaklarına rollerine geçiş yapmak bir elle yük devretme sırasında nasıl etkileyeceğini göstermektedir.Oturum açma saat aşımı saat 15 saniyedir.

Retry-delay algorithm