La règle déclenche une alerte quand Service Broker ne peut pas démarrer le gestionnaire d'activation.
L'activation de Service Broker permet aux applications d'évoluer dynamiquement pour gérer le trafic des messages. En règle générale, une application utilise l'activation en cas de fluctuations imprévisibles du trafic vers le service ou si le service doit évoluer dynamiquement pour traiter le trafic qu'il reçoit.
Le processus d'activation de Service Broker comprend deux étapes. Service Broker détermine d'abord si l'activation est nécessaire. Ensuite, Service Broker détermine si l'activation a lieu. Bien que le processus exact varie entre l'activation interne et l'activation externe, les concepts généraux impliqués sont les mêmes pour chaque stratégie.
Dans ce cas, le gestionnaire d'activation de Service Broker détermine que l'activation est nécessaire et tente de démarrer une application Service Broker sans succès.
Cette erreur est enregistrée dans le journal des applications Linux sous l'ID d'événement MSSQLSERVER 9701. Il peut s'agir d'une insuffisance de mémoire au démarrage du serveur. Cette erreur est probablement liée à un ou plusieurs autres problèmes matériels ou logiciels sur l'ordinateur.
Recherchez dans le journal des applications Linux les erreurs provoquées par d'autres problèmes.
Diagnostiquez le problème en suivant la même procédure que pour des conditions de mémoire insuffisante. Augmentez la mémoire disponible en supprimant moins d'applications essentielles ou en ajoutant de la mémoire virtuelle ou physique.
Pensez aux solutions suivantes pour augmenter la mémoire disponible :
Augmentez la taille du fichier d'échange actuel.
Redémarrez le serveur à l’aide de l’option -g memory_to_reserve pour augmenter la quantité de mémoire que SQL Server mettra à disposition pour les allocations de mémoire dans le processus SQL Server.
Ajoutez de la mémoire physique.
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. | 2 |
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 |
Target | Microsoft.SQLServer.Linux.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Comment | Mom2017ID='{679F7701-5328-45B1-A617-B88F211E4E77}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_start_service_broker_activation_manager_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{679F7701-5328-45B1-A617-B88F211E4E77}';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.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>9701</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_start_service_broker_activation_manager_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>