가장 오래된 메시지

Microsoft.MSMQ.10.0.Monitor.Queue.OldestMessage (UnitMonitor)

이 모니터는 큐에 있는 가장 오래된 메시지의 기간을 확인합니다.

Knowledge Base article:

요약

이 모니터는 큐에 있는 가장 오래된 메시지의 기간을 확인합니다.

구성

이 모니터는 기본적으로 사용되지 않습니다. 작동하도록 하려면 재정의를 통해 활성화해야 합니다.

다음 매개 변수의 설정을 재정의하면 모니터의 동작이 수정됩니다.

IntervalSeconds

테스트가 실행되는 간격(초)입니다. 이 값이 너무 낮게 설정되어 있으면 MSMQ 서비스에 대해 과도한 오버헤드가 발생할 수 있습니다. 너무 높게 설정되어 있으면 적절한 시간 내에 오류 조건을 검색하지 못할 수 있습니다. 기본 설정 값은 120초입니다(2분마다 테스트 실행).

WarningThresholdValue

경고 상태가 생성되는 가장 오래된 메시지의 기간(초).

ErrorThresholdValue

오류 상태가 생성되는 가장 오래된 메시지의 기간(초).

원인

정상적으로 작동될 때에는 메시지가 큐에 추가되면 응용 프로그램에서 적시에 메시지를 받게 됩니다. 메시지가 큐에 장기간 머물게 되면 받는 응용 프로그램에 또는 응용 프로그램이 큐에서 읽는 기능에 문제가 발생한 것일 수 있습니다.

해결 방법

큐와 큐에서 메시지를 받는 응용 프로그램의 연결 상태를 확인하십시오.

Element properties:

TargetMicrosoft.MSMQ.10.0.Queues
Parent MonitorSystem.Health.PerformanceState
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.MSMQ.10.0.MonitorType.QueueStatistic.ThreeState
RemotableTrue
AccessibilityPublic
Alert Message
큐에 있는 가장 오래된 메시지의 기간이 임계값을 초과했습니다.
자세한 내용은 경고 컨텍스트를 참조하세요.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.MSMQ.10.0.Monitor.Queue.OldestMessage" Accessibility="Public" Enabled="false" Target="Microsoft.MSMQ.10.0.Queues" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.MSMQ.10.0.MonitorType.QueueStatistic.ThreeState" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.MSMQ.10.0.Monitor.Queue.OldestMessage.AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ExceededErrorThreshold" MonitorTypeStateID="ErrorState" HealthState="Error"/>
<OperationalState ID="ExceededWarningThreshold" MonitorTypeStateID="WarningState" HealthState="Warning"/>
<OperationalState ID="WithinThreshold" MonitorTypeStateID="SuccessState" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>300</IntervalSeconds>
<ComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</ComputerName>
<QueuePath>$Target/Property[Type="Microsoft.MSMQ.10.0.Queue"]/PathName$</QueuePath>
<CounterName>Oldest Message Age</CounterName>
<LogDetail>false</LogDetail>
<WarningThresholdValue>0</WarningThresholdValue>
<ErrorThresholdValue>0</ErrorThresholdValue>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>