Windows의 MSSQL: 하위 시스템을 로드하지 못하여 작업 단계를 실행할 수 없습니다.

Microsoft.SQLServer.Windows.CollectionRule.Agent.Job_step_cannot_be_run_because_the_subsystem_failed_to_load_1_5_Rule (Rule)

SQL Server 에이전트 하위 시스템을 로드하지 못해서 SQL Server 작업을 실행하지 못했습니다.

Knowledge Base article:

요약

SQL Server 에이전트 하위 시스템을 로드하지 못해서 SQL Server 작업을 실행하지 못했습니다.

Note that this rule does not work if SQL Server on Windows instance is monitored agentlessly.

원인

SQL Server 에이전트 하위 시스템이 변경되었거나 손상되었습니다.

해결 방법

msdb.dbo.syssubsystems 테이블의 subsystem_dll이 올바른 위치를 가리키도록 업데이트하십시오. 자세한 내용은 SQL Server 온라인 설명서의 "syssubsystems(Transact-SQL)"를 참조하십시오.

재정의 가능한 매개 변수

이름

설명

기본값

프록시 허용

ComputerName 매개 변수에 지정된 컴퓨터에서 시작되지 않는 이벤트를 모듈이 수집해야 하는지 여부를 지정합니다.

아니요

사용

워크플로 사용하거나 사용하지 않도록 설정합니다.

우선 순위

알림 우선 순위를 정의합니다.

1

심각도

알림 심각도를 정의합니다.

1

Element properties:

TargetMicrosoft.SQLServer.Windows.Agent
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
Windows의 MSSQL: 하위 시스템을 로드하지 못하여 작업 단계를 실행할 수 없습니다.
이벤트 ID: {0}. {4} 하위 시스템을 로드하지 못했기 때문에 작업 '{2}'({3})의 단계 {1}을(를) 실행할 수 없습니다. 작업이 일시 중단되었습니다.
CommentMom2017ID='{DA6B6DD4-A25C-4B19-95F5-4E48294B15F8}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.Windows.CollectionRule.Agent.Job_step_cannot_be_run_because_the_subsystem_failed_to_load_1_5_Rule" Target="SqlDiscW!Microsoft.SQLServer.Windows.Agent" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{DA6B6DD4-A25C-4B19-95F5-4E48294B15F8}';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.EventProvider">
<ComputerName>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.Agent"]/ComputerName$</ComputerName>
<LogName>Application</LogName>
<AllowProxying>false</AllowProxying>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>Channel</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>Application</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>212</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.Agent"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Windows.CollectionRule.Agent.Job_step_cannot_be_run_because_the_subsystem_failed_to_load_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Data/EventDisplayNumber$</AlertParameter3>
<AlertParameter4>$Data/Params/Param[1]$</AlertParameter4>
<AlertParameter5>$Data/Params/Param[2]$</AlertParameter5>
<AlertParameter6>$Data/Params/Param[3]$</AlertParameter6>
<AlertParameter7>$Data/Params/Param[4]$</AlertParameter7>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>