L'attivazione di Service Broker consente la scalabilità dinamica delle applicazioni in base al traffico dei messaggi. In generale, un'applicazione utilizza l'attivazione se il traffico verso il servizio varia in modo imprevisto o se il servizio deve essere dimensionato dinamicamente in base al 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.
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.
Esaminare il log 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.
Aumentare le dimensioni del file di paging.
Riavviare il server con l'opzione -g memory_to_reserve per aumentare la quantità di memoria che SQL Server lascerà disponibile per le allocazioni di memoria all'interno del processo di SQL Server.
Aggiungere memoria fisica. In un sistema a 32 bit è possibile aggiungere più di 4 GB di memoria fisica se si usa Microsoft Windows Address Windowing Extensions (AWE).
Nome | Descrizione | Valore predefinito |
Abilitato | Abilita o disabilita il flusso di lavoro. | Sì |
Priorità | Definisce la priorità dell'avviso. | 1 |
Gravità | Definisce la gravità dell'avviso. | 2 |
Target | Microsoft.SQLServer.2008.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 9701 | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2008ID='{679F7701-5328-45B1-A617-B88F211E4E77}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.Windows.EventProvider | Microsoft.SQLServer.SQLDefaultAccount |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2008.Cannot_start_service_broker_activation_manager_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{679F7701-5328-45B1-A617-B88F211E4E77}';MOM2008GroupID={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" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<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="SQL!Microsoft.SQLServer.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.2008.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>