Die Service Broker-Aktivierung hilft Anwendungen, sich dynamisch zu skalieren, um sich dem Volumen des Nachrichtenverkehrs anzupassen. Im Allgemeinen verwendet eine Anwendung die Aktivierung, wenn der Verkehr zum Dienst unvorhersehbaren Schwankungen unterliegt oder wenn der Dienst dynamisch skaliert werden muss, um sich an den vom Dienst empfangenen Verkehr anzupassen.
Der Service Broker-Aktivierungsprozess besteht aus zwei Schritten. Zunächst ermittelt Service Broker, ob eine Aktivierung notwendig ist. Im zweiten Schritt legt Service Broker fest, ob die Aktivierung erfolgen wird. Obwohl der Prozess zwischen interner und externer Aktivierung im Detail variiert, ist das Grundprinzip bei jeder Strategie das gleiche.
In diesem Fall stellte der Service Broker-Aktivierungs-Manager fest, dass eine Aktivierung notwendig war, und hat ohne Erfolg versucht, eine Service Broker-Anwendung zu starten.
Dieser Fehler wird im Windows-Anwendungsprotokoll mit Ereignis-ID 9701 und Ereignisquelle MSSQLSERVER aufgezeichnet. Ursache hierfür kann mangelnder Arbeitsspeicher beim Serverstart sein. Dies hängt wahrscheinlich mit einem oder mehreren anderen Hardware- oder Softwareproblemen des Computers zusammen.
Überprüfen Sie das Windows-Anwendungsprotokoll auf Fehler, die durch andere Probleme hervorgerufen wurden.
Analysieren Sie dieses Problem wie alle Probleme, die durch unzureichenden Speicher hervorgerufen werden. Geben Sie Speicher frei, indem Sie weniger kritische Anwendungen beenden oder virtuellen oder physischen Speicher hinzufügen
Es gibt folgende Möglichkeiten, um Speicher freizugeben:
Erhöhen Sie die Größe der Auslagerungsdatei.
Starten Sie den Server mit der Option -g memory_to_reserve neu, um die Speichermenge zu erhöhen, die SQL Server für Speicherbelegungen innerhalb des SQL Server-Prozesses verfügbar hält.
Fügen Sie physischen Arbeitsspeicher hinzu. Bei einem 32-Bit-System können Sie mehr als 4 GB physischen Speicher hinzufügen, wenn Sie Windows Address Windowing Extensions (AWE) verwenden.
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>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>