MSSQL 2016: Die maximale Anzahl an Verbindungen wurde erreicht

Microsoft.SQLServer.2016.Maximum_limit_for_connections_has_been_reached_1_5_Rule (Rule)

Standardmäßig wird der für Benutzerverbindungen benötigte Arbeitsspeicher in SQL Server dynamisch verwaltet. Für die maximale Verbindungsanzahl kann jedoch durch Einstellen der Konfigurationsoption für Benutzerverbindungen auf einen anderen Wert als 0 ein fester Wert eingestellt werden. Die Einstellung der Benutzerverbindungsoption auf einen anderen Wert als 0 wird nicht empfohlen. Wenn diese Option nicht auf 0 eingestellt ist und die angegebene Verbindungsanzahl überschritten wurde, schlagen alle weiteren Anmeldeversuche fehl und es wird die o.a. Meldung angezeigt. Wird der Wert auf 1 festgelegt, wird die SQL Server-Instanz möglicherweise nicht gestartet.

Knowledge Base article:

Zusammenfassung

Standardmäßig wird der für Benutzerverbindungen benötigte Arbeitsspeicher in SQL Server dynamisch verwaltet. Für die maximale Verbindungsanzahl kann jedoch durch Einstellen der Konfigurationsoption für Benutzerverbindungen auf einen anderen Wert als 0 ein fester Wert eingestellt werden. Die Einstellung der Benutzerverbindungsoption auf einen anderen Wert als 0 wird nicht empfohlen. Wenn diese Option nicht auf 0 eingestellt ist und die angegebene Verbindungsanzahl überschritten wurde, schlagen alle weiteren Anmeldeversuche fehl und es wird die o.a. Meldung angezeigt. Wird der Wert auf 1 festgelegt, wird die SQL Server-Instanz möglicherweise nicht gestartet.

Lösungen

Wenn SQL Server ausgeführt wird und eine vorhandene Systemadministratorverbindung besteht, setzen Sie die Option für Benutzerverbindungen mithilfe der folgenden Befehle auf den Standardwert 0 (dynamisch) zurück:

sp_configure "user connections", 0

go

reconfigure with override

Damit die Änderungen wirksam werden, muss die SQL Server-Instanz neu gestartet werden.

Wenn sich SQL Server nicht starten lässt, oder wenn Sie keine der vorhandenen Verbindungen verwenden können, müssen Sie die SQL Server-Instanz in einer Minimalkonfiguration neu starten und die Option für Benutzerverbindungen auf den Standardwert 0 (dynamisch) zurücksetzen.

sp_configure "user connections", 0

go

reconfigure with override

Parameter, die außer Kraft gesetzt werden können

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

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: Die maximale Anzahl an Verbindungen wurde erreicht
{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>