Le transport pour Service Broker/la mise en miroir de bases de données ne peut écouter le port car il est déjà utilisé

Microsoft.SQLServer.2008.The_Service_Broker_Database_Mirroring_transport_cannot_listen_on_port_because_it_is_in_use_5_Rule (Rule)

Knowledge Base article:

Résumé

Quand vous créez un point de terminaison Service Broker ou de mise en miroir de bases de données, SQL Server accepte les connexions TCP/IP sur le port qui est spécifié dans le point de terminaison. La sécurité du transport nécessite une autorisation pour se connecter au port. Si l'ordinateur où SQL Server s'exécute a un pare-feu activé, la configuration de ce dernier doit autoriser les connexions entrantes et sortantes pour le port qui est spécifié dans le point de terminaison.

Dans ce cas, le port spécifié n'est pas disponible car il est déjà utilisé.

Causes

Un autre programme exécuté sur l'ordinateur utilise actuellement le port TCP indiqué. Le journal des applications Windows spécifie si l'erreur a été enregistrée par Service Broker ou par la mise en miroir de bases de données. Ce message est consigné dans le journal des applications Windows en tant qu'ID d'événement 9692 MSSQLSERVER.

Solutions

Exécutez netstat -aon à partir de l’invite de commande pour déterminer le programme qui utilise le port.

Vous pouvez désactiver l'application qui utilise le port ou vous pouvez indiquer un autre port dans l'application Service Broker.

Externe

Consultez « ALTER ENDPOINT (Transact-SQL) » dans la documentation en ligne de Microsoft SQL Server 2008.

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le flux de travail.

Oui

Priorité

Définit la priorité de l'alerte.

1

Gravité

Définit la gravité de l'alerte.

2

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID9692
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Le transport pour Service Broker/la mise en miroir de bases de données ne peut écouter le port car il est déjà utilisé
{0}
Event LogApplication
CommentMom2008ID='{BEE972D8-4422-4CFD-BC7D-B1035EA67E9D}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Microsoft.SQLServer.SQLDefaultAccount
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2008.The_Service_Broker_Database_Mirroring_transport_cannot_listen_on_port_because_it_is_in_use_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{BEE972D8-4422-4CFD-BC7D-B1035EA67E9D}';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>9692</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.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>