MSSQL en Windows: el transporte de Service Broker o de creación de reflejo de la base de datos no puede escuchar en un puerto porque está en uso

Microsoft.SQLServer.Windows.EventRule.DBEngine.The_Service_Broker_Database_Mirroring_transport_cannot_listen_on_port_because_it_is_in_use_5_Rule (Rule)

Al crear un extremo de Service Broker o creación de reflejo de base de datos, SQL Server debe poder aceptar las conexiones TCP/IP del puerto especificado en la configuración del extremo. La seguridad de transporte exige autorización para las conexiones al puerto. Si el servidor tiene un firewall habilitado, su configuración debe permitir tanto conexiones entrantes como salientes para el puerto que se usa por el extremo.

Knowledge Base article:

Resumen

Al crear un extremo de Service Broker o creación de reflejo de base de datos, SQL Server debe poder aceptar las conexiones TCP/IP del puerto especificado en la configuración del extremo. La seguridad de transporte exige autorización para las conexiones al puerto. Si el servidor tiene un firewall habilitado, su configuración debe permitir tanto conexiones entrantes como salientes para el puerto que se usa por el extremo.

En este caso, el puerto especificado no estará disponible porque está en uso.

Causas

Otro programa del equipo está usando el puerto TCP indicado. El registro de aplicaciones de Windows especifica si el error lo registró Service Broker o la creación de reflejo de base de datos. Este error se ha registrado con el id. de evento 9692 de MSSQLSERVER en el registro de aplicaciones de Windows.

Resoluciones

Ejecute netstat -aon desde el símbolo del sistema para determinar el programa que está utilizando el puerto.

Puede deshabilitar la aplicación que esté utilizando el puerto o especificar otro puerto en la aplicación Service Broker.

Externo

Vea "ALTER ENDPOINT (Transact-SQL)" en los Libros en pantalla de SQL Server.

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo.

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

300

Prioridad

Define la prioridad de alerta.

1

Gravedad

Define la gravedad de alerta.

2

Hora de sincronización

Hora de sincronización

 

Tiempo de espera (segundos)

Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo.

200

Tiempo de expiración de la conexión de base de datos (segundos)

Se producirá un error en el flujo de trabajo y se registrará un evento si no puede obtener acceso a la base de datos durante el período especificado.

15

Element properties:

TargetMicrosoft.SQLServer.Windows.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL en Windows: el transporte de Service Broker o de creación de reflejo de la base de datos no puede escuchar en un puerto porque está en uso
{0}
CommentMom2017ID='{BEE972D8-4422-4CFD-BC7D-B1035EA67E9D}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.Windows.EventRule.DBEngine.The_Service_Broker_Database_Mirroring_transport_cannot_listen_on_port_because_it_is_in_use_5_Rule" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{BEE972D8-4422-4CFD-BC7D-B1035EA67E9D}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Windows.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>9692</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.EventRule.DBEngine.The_Service_Broker_Database_Mirroring_transport_cannot_listen_on_port_because_it_is_in_use_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>