MSSQL на Linux: не удается запустить диспетчер активации компонента Service Broker

Microsoft.SQLServer.Linux.EventRule.DBEngine.Cannot_start_service_broker_activation_manager_5_Rule (Rule)

Правило создает предупреждение, когда компоненту Service Broker не удается запустить диспетчер активации.

Knowledge Base article:

Сводка

Активация компонента Service Broker помогает приложениям динамически масштабироваться в соответствии с трафиком сообщений. Обычно приложение использует активацию, если нагрузка на службу меняется непредсказуемым образом или необходимо обеспечить динамическое масштабирование службы в соответствии с объемом получаемых сообщений.

Процесс активации компонента Service Broker состоит из двух этапов. Во-первых, компонент Service Broker определяет, необходима ли активация. Во-вторых, компонент Service Broker определяет, происходит ли активация. Несмотря на то, что внешняя и внутренняя активация различаются, общая концепция одинакова для обеих стратегий.

В этом случае диспетчер активации компонента Service Broker определил необходимость активации и безуспешно попытался запустить приложение компонента Service Broker.

Причины

Эта ошибка записывается в журнал приложений Linux как событие MSSQLSERVER с идентификатором 9701. Причиной может быть нехватка памяти во время запуска сервера. Вероятно, это связано с другими аппаратными или программными проблемами на компьютере.

Разрешения

Просмотрите журнал приложений Linux, чтобы найти ошибки, вызванные другими проблемами.

Выполните диагностику в предположении о нехватке памяти. Увеличьте доступную память путем закрытия менее важных приложений либо добавления виртуальной или физической памяти.

Рассмотрите следующие решения по увеличению доступной памяти.

Переопределяемые параметры

Имя

Описание

Значение по умолчанию

Включено

Включает или отключает рабочий процесс.

Да

Интервал (в секундах)

Повторяющийся интервал времени в секундах, в который следует запустить рабочий процесс.

300

Приоритет

Определение приоритета оповещений.

1

Важность

Определяет серьезность предупреждения.

2

Время синхронизации

Время синхронизации

 

Время ожидания (в секундах)

Указывает время, в течение которого рабочий процесс должен быть запущен, прежде чем он будет закрыт и отмечен как завершившийся сбоем.

200

Время ожидания для подключения к базе данных (секунды)

Рабочий процесс завершится ошибкой и зарегистрирует событие, если он не сможет получить доступ к базе данных за указанный промежуток времени.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL на Linux: не удается запустить диспетчер активации компонента Service Broker
{0}
CommentMom2017ID='{679F7701-5328-45B1-A617-B88F211E4E77}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<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>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<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>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>