MSSQL 2016: se alcanzó el número máximo de conexiones

Microsoft.SQLServer.2016.Maximum_limit_for_connections_has_been_reached_1_5_Rule (Rule)

De forma predeterminada, SQL Server administra dinámicamente la memoria necesaria para las conexiones de usuarios. No obstante, el número máximo de conexiones se puede establecer en un valor fijo si se configura la opción de configuración de conexiones del usuario en un valor distinto de 0. No se recomienda establecer la opción de conexiones del usuario en un valor distinto de cero. Si se configura con un valor distinto de cero y se supera el número de conexiones especificado, todos los intentos de inicio de sesión adicionales devolverán un error con el mensaje anterior. Si el valor se establece en 1, es posible que no se inicie la instancia de SQL Server.

Knowledge Base article:

Resumen

De forma predeterminada, SQL Server administra dinámicamente la memoria necesaria para las conexiones de usuarios. No obstante, el número máximo de conexiones se puede establecer en un valor fijo si se configura la opción de configuración de conexiones del usuario en un valor distinto de 0. No se recomienda establecer la opción de conexiones del usuario en un valor distinto de cero. Si se configura con un valor distinto de cero y se supera el número de conexiones especificado, todos los intentos de inicio de sesión adicionales devolverán un error con el mensaje anterior. Si el valor se establece en 1, es posible que no se inicie la instancia de SQL Server.

Soluciones

Si se ejecuta SQL Server y dispone de una conexión de administrador del sistema existente, emita los siguientes comandos para restablecer la opción de conexión del usuario al valor predeterminado 0 (dinámica):

sp_configure 'conexiones de usuario', 0

ir

reconfigure with override

Será necesario reiniciar la instancia de SQL Server para que el cambio surta efecto.

Si SQL Server no se inicia o si no es posible usar una de las conexiones existentes, deberá iniciar la instancia de SQL Server con una configuración mínima y restablecer la opción de conexión del usuario con el valor predeterminado 0 (dinámica).

sp_configure 'conexiones de usuario', 0

ir

reconfigure with override

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo.

Prioridad

Define la prioridad de la alerta.

1

Gravedad

Define la gravedad de la alerta.

1

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID17809
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: se alcanzó el número máximo de conexiones
{0}
Event LogApplication
CommentMom2016ID='{A9344B04-ED2A-4F54-B91D-CC99D35469F1}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2016.Maximum_limit_for_connections_has_been_reached_1_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{A9344B04-ED2A-4F54-B91D-CC99D35469F1}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>17809</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2016.Maximum_limit_for_connections_has_been_reached_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>