AD Replication Queue Monitor

Microsoft.Windows.Server.2012.R2.AD.Performance.Replication.Queue.Monitor (UnitMonitor)

Monitors the number of items in the domain controllers replication queue.

Knowledge Base article:

Summary

Monitors the number of items in the AD Replication queue. If this number becomes too large, there may be a delay in AD replication.

Causes

Possible causes include the following:

Resolutions

View the overall system performance of the machine to determine if it needs additional resources.

Add additional domain controllers to help load-balance the load.

Ensure that there are a sufficient number of DCs in the active AD sites.

Run 'repadmin /showrepl' and 'repadmin /replsum' to ensure there are no replication failures with other domain controllers.

External

Element properties:

TargetMicrosoft.Windows.Server.2012.R2.AD.DomainControllerRole
Parent MonitorMicrosoft.Windows.Server.2012.R2.AD.PerformanceReplication.AggregateMonitor
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.Server.2012.R2.AD.Replication.Queue.Monitortype
RemotableFalse
AccessibilityPublic
Alert Message
The AD Replication Queue health monitor has exceeded one or more thresholds.
The average replication queue size is above the configured threshold.
Counter: {0}
Avg Queue Size: {1}
Number of samples: {2}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.Server.2012.R2.AD.Performance.Replication.Queue.Monitor" Accessibility="Public" Enabled="true" Target="AD2012R2Core!Microsoft.Windows.Server.2012.R2.AD.DomainControllerRole" ParentMonitorID="Microsoft.Windows.Server.2012.R2.AD.PerformanceReplication.AggregateMonitor" Remotable="false" Priority="Normal" TypeID="Microsoft.Windows.Server.2012.R2.AD.Replication.Queue.Monitortype" ConfirmDelivery="false">
<Category>Custom</Category>
<AlertSettings AlertMessage="Microsoft.Windows.Server.2012.R2.AD.Performance.Replication.Queue.Monitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data[Default='']/Context/CounterName$</AlertParameter1>
<AlertParameter2>$Data[Default='']/Context/Value$</AlertParameter2>
<AlertParameter3>$Data[Default='']/Context/SampleCount$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="QueueOK" MonitorTypeStateID="QueueOK" HealthState="Success"/>
<OperationalState ID="QueueWarn" MonitorTypeStateID="QueueWarn" HealthState="Warning"/>
<OperationalState ID="QueueError" MonitorTypeStateID="QueueError" HealthState="Error"/>
</OperationalStates>
<Configuration>
<Frequency>300</Frequency>
<TimeoutSeconds>300</TimeoutSeconds>
<WarnThreshold>20</WarnThreshold>
<ErrorThreshold>50</ErrorThreshold>
<NumSamples>3</NumSamples>
</Configuration>
</UnitMonitor>