MSSQL 2016: non è possibile avviare lo strumento di gestione dell'attivazione di Service Broker

Microsoft.SQLServer.2016.Cannot_start_service_broker_activation_manager_5_Rule (Rule)

La regola attiva un avviso quando Service Broker non riesce ad avviare lo strumento di gestione dell'attivazione.

Knowledge Base article:

Riepilogo

L'attivazione di Service Broker consente la scalabilità dinamica delle applicazioni in modo da gestire il traffico dei messaggi. In generale, un'applicazione usa l'attivazione se il traffico verso il servizio varia in modo imprevisto o se il servizio deve essere scalato dinamicamente per gestire il traffico ricevuto dal servizio stesso.

Il processo di attivazione di Service Broker richiede due passaggi. Nel primo, Service Broker determina se l'attivazione è necessaria. Nel secondo, Service Broker determina se l'attivazione si verifica. Sebbene il processo esatto sia diverso tra l'attivazione interna ed esterna, i concetti generali implicati sono gli stessi per entrambe le strategie.

In questo caso, la gestione dell'attivazione di Service Broker ha determinato che era necessaria l'attivazione e ha provato, senza però riuscirvi, ad avviare un'applicazione Service Broker.

Cause

Questo errore viene registrato nel registro applicazioni di Windows come evento MSSQLSERVER con ID 9701 e potrebbe essere causato da mancanza di memoria durante l'avvio del server. È probabilmente collegato ad altri problemi hardware o software del computer.

Soluzioni

Esaminare il registro applicazioni di Windows per trovare gli errori causati da altri problemi.

Diagnosticare questo problema come nel caso di una qualsiasi condizione di memoria insufficiente. Aumentare la memoria disponibile rimuovendo le applicazioni meno critiche oppure aggiungendo memoria fisica o virtuale.

Per aumentare la memoria disponibile, prendere in considerazione le soluzioni riportate di seguito.:

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Abilitato

Abilita o disabilita il flusso di lavoro.

Priorità

Definisce la priorità dell'avviso.

1

Gravità

Definisce la gravità dell'avviso.

2

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID9701
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: non è possibile avviare lo strumento di gestione dell'attivazione di Service Broker
{0}
Event LogApplication
CommentMom2016ID='{679F7701-5328-45B1-A617-B88F211E4E77}';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.Cannot_start_service_broker_activation_manager_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{679F7701-5328-45B1-A617-B88F211E4E77}';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>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>9701</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<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>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2016.Cannot_start_service_broker_activation_manager_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>