La regla desencadena una alerta cuando Service Broker no puede iniciar el administrador de activación.
La activación de Service Broker permite a las aplicaciones escalar dinámicamente su alcance para administrar el tráfico de mensajes. En general, una aplicación usa la activación si el tráfico al servicio varía de forma imprevisible o si el servicio tiene que escalarse dinámicamente para coincidir con el tráfico que este recibe.
El proceso de activación de Service Broker consta de dos pasos. En primer lugar, Service Broker determina si es necesaria la activación. En segundo lugar, Service Broker determina si se produce la activación. Aunque el proceso exacto diferencia entre la activación interna y externa, los conceptos generales implicados son los mismos para cualquier estrategia.
En este caso, el administrador de activación de Service Broker ha determinado que era necesaria la activación y ha intentado iniciar una aplicación de Service Broker, pero no lo ha conseguido.
Este error se ha registrado con el id. de evento 9701 de MSSQLSERVER en el registro de aplicaciones de Linux. La causa puede ser la falta de memoria durante el inicio del servidor. Probablemente esté relacionado con uno o varios problemas más de hardware o software del equipo.
Investigue el registro de aplicaciones de Linux para encontrar los errores que han provocado otros problemas.
Diagnostique este error como un estado de memoria baja. Aumente la cantidad de memoria disponible eliminado las aplicaciones menos necesarias o agregando memoria física o virtual.
Tenga en cuenta las siguientes soluciones para aumentar la cantidad de memoria disponible:
Aumente el tamaño del archivo de paginación.
Reinicie el servidor con la opción -g memory_to_reserve para aumentar la cantidad de memoria que SQL Server dejará disponible para las asignaciones de memoria en el proceso de SQL Server.
Agregue memoria física.
Nombre | Descripción | Valor predeterminado |
Habilitado | Habilita o deshabilita el flujo de trabajo. | Sí |
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 |
Target | Microsoft.SQLServer.Linux.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Comment | Mom2017ID='{679F7701-5328-45B1-A617-B88F211E4E77}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74} |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ | DataSource | Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_start_service_broker_activation_manager_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{679F7701-5328-45B1-A617-B88F211E4E77}';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.Linux.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>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>9701</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_start_service_broker_activation_manager_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>