Bir Storage kuyruğu tarafından tetiklenen bir Azure Function, bir Azure SQL Veritabanı'na bağlanıyor ve System.InvalidOperationException: timeout acquiring connection from the pool (max pool size reached) hatası veriyor. Bu istisnayı önlemek için neyi değiştirmelisiniz?
Bir cevap seçin
Cevabınızı kontrol etmek için bir seçeneğe dokunun.
Doğru cevap: host.json dosyasında batchSize değerini düşürün.
Neden bu cevap
System.InvalidOperationException: timeout acquiring connection from the pool (max pool size reached) hatası, Azure Function'ınızın Azure SQL Veritabanı'na çok fazla eşzamanlı bağlantı açmaya çalıştığını ve bağlantı havuzu limitine ulaştığını gösterir. host.json dosyasındaki batchSize değeri, bir Storage kuyruğu tetikleyicisinin tek bir çalıştırmada işleyeceği maksimum kuyruk mesajı sayısını belirler. Bu değeri düşürmek, Function'ın aynı anda daha az mesaj işlemesini sağlar, dolayısıyla SQL Veritabanı'na açılan eşzamanlı bağlantı sayısını azaltır ve bağlantı havuzu tükenmesi sorununu önler. Diğer seçenekler bu sorunu çözmez: Tetikleyiciyi Azure Event Hubs'a dönüştürmek, temel bağlantı havuzu sorununu çözmez, sadece tetikleyici tipini değiştirir. Azure Function'ı Premium plana geçirmek, daha fazla kaynak sağlar ancak bağlantı havuzu limitini veya Function'ın bağlantıları nasıl kullandığını doğrudan etkilemez. function.json dosyasında type değerini queueScaling olarak değiştirmek geçerli bir yapılandırma değildir ve bu sorunu çözmez.
Sonsuz cevap arayışı olmadan sınavınızı geçin
Bu sınav için her doğrulanmış soruyu ve açıklamayı tek bir yerde edinin ve saatlerce süren hazırlıktan tasarruf edin. 1.000'den fazla sertifika · 20'den fazla dil · ücretsiz başlayın.
Sınavınızı daha hızlı geçin → Kart gerekmez