Connection Pool Exhaustion ASP.NET Core

services.AddDbContext<AppDbContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
        sqlOptions =>
        {
            sqlOptions.MinPoolSize(10);
            sqlOptions.MaxPoolSize(100);
            sqlOptions.CommandTimeout(30);
            sqlOptions.EnableRetryOnFailure(
                maxRetryCount: 3,
                maxRetryDelay: TimeSpan.FromSeconds(30),
                errorNumbersToAdd: null);
            
            // Additional connection resiliency
            sqlOptions.ConnectRetryCount(5);
            sqlOptions.ConnectRetryInterval(TimeSpan.FromSeconds(10));
            sqlOptions.EnableRetryOnFailure();
        }));

// Add health checks
services.AddHealthChecks()
    .AddDbContextCheck<AppDbContext>();