The timeout period elapsed prior to obtaining a connection from the pool

Por acaso você já recebeu essa mensagem de erro abaixo?

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.

Esse é um problema bastante comum. Isso ocorre em programas .NET que abrem conexão com o banco de dados e depois retornam o objeto para o pool sem chamar o comando Dispose.

A solução é simples: após o uso da conexão, fecha-las com o banco de dados usando Close() ou Dispose(). Melhor ainda seria usar a sintaxe “using” ou “try/finally” do C#.

Importante: Esse é um erro do lado cliente e não do servidor SQL Server. Entretanto, criei um script para ajudar a identificar o problema.

OPENCONN – Download