20 Ekim 2015 Salı

HATA: AlwaysOn AG'de MultiSubnetFailover parametresi kullanıldığında oluşan zaman aşımı sorunu

HATA:
Connection Timeout Expired.  The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement.  This could be because the pre-login handshake failed or the server was unable to respond back in time.  The duration spent while attempting to connect to this server was - [Pre-Login] initialization=63121; handshake=42327;

"Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached."

AÇIKLAMA:
AlwaysOn Availability Group SQL Listener'ınıza aşağıdaki gibi bir Connection String ile bağlanırken, yukarıdaki gibi hatalar alabilirsiniz.

Connection String örneği:
Data Source=tcp:, ; Initial Catalog=; User Id=; Password=; Connection Timeout=60; MultiSubnetFailover=True

ÇÖZÜM:
Ben bu hata ile Windows 7 işletim sistemlerinde karşılaştım. Test ortamımda an itibariyle diğer işletim sistemleri olmadığından deneyemedim, o yüzden onlarda da var mı, yok mu şu anda bilemiyorum.

Sorun, aşağıda paylaştığım Microsoft Knowledge Base'te de anlatıldığı gibi Tdx.sys isimli sürücünün, işlev bir TCP/IP elsıkışması ortasında çağrıldığında Closesocket() isimli işlevi başarıyla kontrol edememesinden kaynaklanıyormuş.

https://support.microsoft.com/en-us/kb/2870437

Eğer Windows 7 kullanıyorsanız ve burada izah ettiğim sorunu yaşıyorsanız, yukarıdaki KB'deki Hotfix'i indirip kurduktan sonra bu sorundan kurtulacaksınız.

Ekrem Önsoy

Hiç yorum yok: