一個由 Storage queue 觸發的 Azure Function 連線到 Azure SQL Database 時,拋出了 System.InvalidOperationException: timeout acquiring connection from the pool (max pool size reached) 錯誤。您應該如何修改才能避免這個例外狀況?
選擇一個答案
點擊一個選項來檢查您的答案。
正確答案: 在 host.json 中,減少 batchSize 的值.
為什麼這是答案
當 Azure Function 處理 Storage queue 訊息時,若 batchSize 過大,可能導致同時開啟過多 SQL 連線,超出連線池最大限制,進而引發 System.InvalidOperationException: timeout acquiring connection from the pool (max pool size reached) 錯誤。減少 host.json 中的 batchSize 可以降低 Function 實例同時處理的訊息數量,有效減少對 SQL 資料庫的併發連線數,避免連線池耗盡。 將觸發器轉換為 Azure Event Hubs 無法解決 SQL 連線池耗盡的問題,因為問題出在 Function 內部邏輯與資料庫互動。將 Azure Function 切換到 Premium 方案雖然提供更多資源,但若程式碼邏輯仍一次性開啟過多連線,問題依然會發生。在 function.json 中將 type 更改為 queueScaling 並非標準的設定選項,且無法直接解決連線池問題。
通過考試 — 無需無休止地尋找答案
集中一處獲取此考試的所有核實題目和解釋,節省數小時的準備時間。1,000 多種認證 · 20 多種語言 · 免費開始。
更快通過您的考試 → 無需信用卡