MSSQL 2016: Der Transport für Service Broker/Datenbankspiegelung kann den Port nicht überwachen, weil er verwendet wird

Microsoft.SQLServer.2016.The_Service_Broker_Database_Mirroring_transport_cannot_listen_on_port_because_it_is_in_use_5_Rule (Rule)

Wenn Sie einen Service Broker- oder Datenbankspiegelungsendpunkt erstellen, muss SQL Server TCP/IP-Verbindungen auf dem in der Endpunktkonfiguration angegebenen Port akzeptieren können. Aus Gründen der Transportsicherheit ist eine Autorisierung für die Verbindungen zum Port erforderlich. Wenn auf dem Server eine Firewall aktiviert ist, muss die Firewall-Konfiguration eingehende und ausgehende Verbindungen zum bzw. vom Port zulassen, der vom Endpunkt verwendet wird.

Knowledge Base article:

Zusammenfassung

Wenn Sie einen Service Broker- oder Datenbankspiegelungsendpunkt erstellen, muss SQL Server TCP/IP-Verbindungen auf dem in der Endpunktkonfiguration angegebenen Port akzeptieren können. Aus Gründen der Transportsicherheit ist eine Autorisierung für die Verbindungen zum Port erforderlich. Wenn auf dem Server eine Firewall aktiviert ist, muss die Firewall-Konfiguration eingehende und ausgehende Verbindungen zum bzw. vom Port zulassen, der vom Endpunkt verwendet wird.

In diesem Fall ist der angegebene Port nicht verfügbar, da er verwendet wird.

Ursachen

Ein anderes Programm auf dem Computer verwendet den angegebenen TCP-Port. Das Windows-Anwendungsprotokoll gibt an, ob der Fehler von Service Broker oder von der Datenbankspiegelung ausgegeben wurde. Diese Meldung wird im Windows-Anwendungsprotokoll mit Ereignis-ID 9692 und Ereignisquelle MSSQLSERVER protokolliert.

Lösungen

Führen Sie in der Eingabeaufforderung netstat -aon aus, um festzulegen, von welchem Programm der Port genutzt wird.

Sie können entweder die Anwendung, die den Port verwendet, deaktivieren oder in der Service Broker-Anwendung einen anderen Port angeben.

Extern

Siehe "ALTER ENDPOINT (Transact-SQL)" in der Onlinedokumentation zu SQL Server 2016.

Parameter, die außer Kraft gesetzt werden können

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

2

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID9692
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: Der Transport für Service Broker/Datenbankspiegelung kann den Port nicht überwachen, weil er verwendet wird
{0}
Event LogApplication
CommentMom2016ID='{BEE972D8-4422-4CFD-BC7D-B1035EA67E9D}';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.The_Service_Broker_Database_Mirroring_transport_cannot_listen_on_port_because_it_is_in_use_5_Rule" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{BEE972D8-4422-4CFD-BC7D-B1035EA67E9D}';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>9692</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.The_Service_Broker_Database_Mirroring_transport_cannot_listen_on_port_because_it_is_in_use_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>