MSSQL on Linux: 에이전트 장기 실행 작업

Microsoft.SQLServer.Linux.MonitorType.Agent.LongRunningJobs (UnitMonitorType)

이 모니터 유형은 지정된 시간 임계값에 대한 모든 에이전트 작업의 현재 실행 시간을 확인합니다.

Element properties:

RunAsDefault
AccessibilityInternal
Support Monitor RecalculateFalse

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.SQLServer.Linux.DataSource.AgentLongRunningJobs Default
CDOverThreshold1UnderThreshold2 ConditionDetection System.ExpressionFilter Default
CDOverThreshold2 ConditionDetection System.ExpressionFilter Default
CDUnderThreshold1 ConditionDetection System.ExpressionFilter Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
Threshold1double$Config/Threshold1$경고 임계값(분)경고 임계값입니다. 이 임계값을 초과하면 모니터가 경고 상태로 변경됩니다.
Threshold2double$Config/Threshold2$위험 임계값(분)값이 이 임계값을 초과하는 경우 모니터의 상태가 위험으로 변경됩니다. 이 임계값과 경고 임계값 사이(경계 포함)에서는 모니터가 경고 상태로 유지됩니다.
IncludedJobsstring$Config/IncludedJobs$지속적으로 실행하는 작업 포함일부 SQL 에이전트 작업이 에이전트가 중지될 때까지 무한대로 실행될 수 있습니다. 이러한 작업은 일정 유형이 대개 'SQL Server 에이전트가 시작될 때 자동으로 시작'입니다. 예를 들어 SQL Server 복제는 이러한 작업을 사용하는 경우가 많은데, 이들 작업으로 인해 거짓 경고가 발생하고 모니터링을 통해 기본적으로 인식되지 않습니다. 하지만 이러한 작업이 짧은 시간 동안 실행되는 경우는 예외일 수 있습니다. 이러한 작업을 모니터링하려면 작업의 이름 목록을 쉼표로 구분하여 정의해야 합니다.
SqlTimeoutSecondsint$Config/SqlTimeoutSeconds$데이터베이스 연결 시간 제한(초)워크플로는 지정된 기간 동안 데이터베이스에 액세스할 수 없으면 실패하며 이벤트를 등록합니다.
TimeoutSecondsint$Config/TimeoutSeconds$시간 제한(초)여기서 지정한 시간 동안 워크플로가 실행된 후 워크플로가 닫히고 실패로 표시됩니다.
IntervalSecondsint$Config/IntervalSeconds$간격(초)워크플로를 실행하는 반복 시간 간격(초)입니다.
SyncTimestring$Config/SyncTime$동기화 시간24시간 형식으로 지정된 동기화 시간입니다. 생략될 수 있습니다.

Source Code:

<UnitMonitorType ID="Microsoft.SQLServer.Linux.MonitorType.Agent.LongRunningJobs" Accessibility="Internal">
<MonitorTypeStates>
<MonitorTypeState ID="UnderThreshold1"/>
<MonitorTypeState ID="OverThreshold1UnderThreshold2"/>
<MonitorTypeState ID="OverThreshold2"/>
</MonitorTypeStates>
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="MachineName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="InstanceName" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ConnectionString" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Threshold1" type="xsd:double"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Threshold2" type="xsd:double"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="IncludedJobs" type="xsd:string"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SqlTimeoutSeconds" type="xsd:int"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="TimeoutSeconds" type="xsd:int"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="IntervalSeconds" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="SyncTime" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="Threshold1" ParameterType="double" Selector="$Config/Threshold1$"/>
<OverrideableParameter ID="Threshold2" ParameterType="double" Selector="$Config/Threshold2$"/>
<OverrideableParameter ID="IncludedJobs" ParameterType="string" Selector="$Config/IncludedJobs$"/>
<OverrideableParameter ID="SqlTimeoutSeconds" ParameterType="int" Selector="$Config/SqlTimeoutSeconds$"/>
<OverrideableParameter ID="TimeoutSeconds" ParameterType="int" Selector="$Config/TimeoutSeconds$"/>
<OverrideableParameter ID="IntervalSeconds" ParameterType="int" Selector="$Config/IntervalSeconds$"/>
<OverrideableParameter ID="SyncTime" ParameterType="string" Selector="$Config/SyncTime$"/>
</OverrideableParameters>
<MonitorImplementation>
<MemberModules>
<DataSource TypeID="Microsoft.SQLServer.Linux.DataSource.AgentLongRunningJobs" ID="DS">
<MachineName>$Config/MachineName$</MachineName>
<InstanceName>$Config/InstanceName$</InstanceName>
<ConnectionString>$Config/ConnectionString$</ConnectionString>
<IncludedJobs>$Config/IncludedJobs$</IncludedJobs>
<SqlTimeoutSeconds>$Config/SqlTimeoutSeconds$</SqlTimeoutSeconds>
<TimeoutSeconds>$Config/TimeoutSeconds$</TimeoutSeconds>
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<SyncTime>$Config/SyncTime$</SyncTime>
</DataSource>
<ConditionDetection ID="CDUnderThreshold1" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='MaxJobDuration']</XPathQuery>
</ValueExpression>
<Operator>Less</Operator>
<ValueExpression>
<Value Type="Double">$Config/Threshold1$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
<ConditionDetection ID="CDOverThreshold1UnderThreshold2" TypeID="System!System.ExpressionFilter">
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='MaxJobDuration']</XPathQuery>
</ValueExpression>
<Operator>GreaterEqual</Operator>
<ValueExpression>
<Value Type="Double">$Config/Threshold1$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='MaxJobDuration']</XPathQuery>
</ValueExpression>
<Operator>LessEqual</Operator>
<ValueExpression>
<Value Type="Double">$Config/Threshold2$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</ConditionDetection>
<ConditionDetection ID="CDOverThreshold2" TypeID="System!System.ExpressionFilter">
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Double">Property[@Name='MaxJobDuration']</XPathQuery>
</ValueExpression>
<Operator>Greater</Operator>
<ValueExpression>
<Value Type="Double">$Config/Threshold2$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</ConditionDetection>
</MemberModules>
<RegularDetections>
<RegularDetection MonitorTypeStateID="UnderThreshold1">
<Node ID="CDUnderThreshold1">
<Node ID="DS"/>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="OverThreshold1UnderThreshold2">
<Node ID="CDOverThreshold1UnderThreshold2">
<Node ID="DS"/>
</Node>
</RegularDetection>
<RegularDetection MonitorTypeStateID="OverThreshold2">
<Node ID="CDOverThreshold2">
<Node ID="DS"/>
</Node>
</RegularDetection>
</RegularDetections>
</MonitorImplementation>
</UnitMonitorType>