MSSQL sur Windows : Le nombre maximal de connexions a été atteint

Microsoft.SQLServer.Windows.EventRule.DBEngine.Maximum_limit_for_connections_has_been_reached_1_5_Rule (Rule)

Par défaut, SQL Server gère dynamiquement la mémoire nécessaire aux connexions utilisateur. Toutefois, le nombre maximal de connexions peut être défini sur une valeur fixe en affectant à l'option de configuration des connexions utilisateur une valeur autre que 0. Nous vous déconseillons de définir l'option des connexions utilisateur sur une valeur différente de zéro. Si vous définissez cette option sur une valeur différente de zéro et que le nombre de connexions spécifié est dépassé, toute nouvelle tentative de connexion échoue avec le message ci-dessus. Si la valeur définie est 1, l'instance SQL Server peut ne pas démarrer.

Knowledge Base article:

Résumé

Par défaut, SQL Server gère dynamiquement la mémoire nécessaire aux connexions utilisateur. Toutefois, le nombre maximal de connexions peut être défini sur une valeur fixe en affectant à l'option de configuration des user connections une valeur autre que 0. Nous vous déconseillons de définir l'option des connexions utilisateur sur une valeur différente de zéro. Si vous définissez cette option sur une valeur différente de zéro et que le nombre de connexions spécifié est dépassé, toute nouvelle tentative de connexion échoue avec le message ci-dessus. Si la valeur définie est 1, l'instance SQL Server peut ne pas démarrer.

Résolutions

Si vous êtes connecté comme administrateur système à une instance SQL Server en cours d'exécution, utilisez les commandes suivantes pour rétablir la valeur par défaut 0 (dynamique) de l'option de connexion utilisateur :

sp_configure 'user connections', 0

go

reconfigurer avec un remplacement

L'instance SQL Server doit être redémarrée pour que la modification prenne effet.

Si SQL Server ne démarre pas ou que vous ne pouvez pas utiliser une des connexions existantes, vous devez redémarrer l'instance SQL Server dans une configuration minimale et rétablir la valeur par défaut 0 (dynamique) de l'option de connexion utilisateur.

sp_configure 'user connections', 0

go

reconfigurer avec un remplacement

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le flux de travail.

Oui

Intervalle (en secondes)

Intervalle régulier (en secondes) auquel exécuter le flux de travail.

300

Priorité

Définit la priorité de l'alerte.

1

Gravité

Définit la gravité de l'alerte.

1

Heure de synchronisation

Heure de synchronisation

 

Délai d'expiration (secondes)

Spécifie la durée pendant laquelle le flux de travail est autorisé à s’exécuter avant d’être fermé et marqué comme ayant échoué.

200

Délai d’attente pour la connexion de base de données (secondes)

Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée.

15

Element properties:

TargetMicrosoft.SQLServer.Windows.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL sur Windows : Le nombre maximal de connexions a été atteint
{0}
CommentMom2017ID='{A9344B04-ED2A-4F54-B91D-CC99D35469F1}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.Windows.EventRule.DBEngine.Maximum_limit_for_connections_has_been_reached_1_5_Rule" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{A9344B04-ED2A-4F54-B91D-CC99D35469F1}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>17809</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.Maximum_limit_for_connections_has_been_reached_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>