DFS-R: Replicated Folder Offline Duration

Microsoft.Windows.FileServer.DFSR.ReplicatedFolderOfflineMonitor (UnitMonitor)

This object monitors replicated folders that were recently brought online and creates a Warning alert if any of the replicated folders were offline for too many days.

Knowledge Base article:

Summary

This object monitors replicated folders that were recently brought online and creates a Warning alert if any of the replicated folders were offline for too many days. It does so by checking for the presence of DFS Replication Event 4012 in the DFS Replication event log.

Causes

This monitor enters an unhealthy state if a member of a replication group has been offline (disconnected from other members of the replication group) for longer than the MaxOfflineTimeInDays parameter, and then is brought back online. This can occur if the server is running Windows Server 2008 R2 or Windows Server 2008, “content freshness” (the MaxOfflineTimeInDays parameter) has been enabled, and any of the following conditions exist:

Resolutions

Disable and enable the computer’s membership in the replication group

To resolve this issue, back up all data in the affected replicated folders, and then see Implementing Content Freshness Protection In DFSR (http://go.microsoft.com/fwlink/?LinkId=187089) for information about how to recover from this situation by disabling and then enabling the computer’s membership.

Caution: After enabling a replicated folder, DFS Replication performs the initial replication by using the primary member’s files as authoritative regardless of the age, potentially overwriting newer files.

Note: Membership in Enterprise Admins, or equivalent, is required to complete this procedure. See Local and Domain Default Groups (http://go.microsoft.com/fwlink/?LinkId=83477) for details about using the appropriate accounts and group memberships.

Verification

After replication completes, this monitor automatically resets to a healthy state.

To manually confirm that replication is healthy, run a propagation test on the affected folder by using DFS Management or the following commands, where [ReplicationGroup]is the name of the replication group and [ReplicatedFolder]is the name of the replicated folder:

dfsrdiag propagationtest /rgname:"[ReplicationGroup]" /rfname:"[ReplicatedFolder]" /testfilename:DFS-RTestFile.xml

dfsrdiag propagationreport /rgname:"[ReplicationGroup]" /rfname:"[ReplicatedFolder]" /testfilename:DFS-RTestFile.xml /reportfilename:c:\DFS-R_Report.xml

Additional

DFS Replication Event (http://go.microsoft.com/fwlink/?LinkId=187134)

Element properties:

TargetMicrosoft.Windows.FileServer.DFSR.ReplicatedFolder
Parent MonitorSystem.Health.AvailabilityState
CategoryStateCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.2SingleEventLog2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
DFS-R: Replicate Folder Was Offline for Too Many Days
The DFS Replication service stopped replication on the replicated folder at local path {0}. It has been disconnected from other partners for {1} days, which is longer than the MaxOfflineTimeInDays parameter. Because of this, DFS Replication considers this data to be stale.
Additional Information:
Error: {2} ({3})
Replicated Folder Name: {4}
Replicated Folder ID: {5} Replication Group Name: {6}
Replication Group ID: {7}
Member ID: {8}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.FileServer.DFSR.ReplicatedFolderOfflineMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.FileServer.DFSR.ReplicatedFolder" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>StateCollection</Category>
<AlertSettings AlertMessage="Microsoft.Windows.FileServer.DFSR.ReplicatedFolderOfflineMonitor_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Params/Param[3]$</AlertParameter1>
<AlertParameter2>$Data/Context/Params/Param[2]$</AlertParameter2>
<AlertParameter3>$Data/Context/Params/Param[4]$</AlertParameter3>
<AlertParameter4>$Data/Context/Params/Param[5]$</AlertParameter4>
<AlertParameter5>$Data/Context/Params/Param[6]$</AlertParameter5>
<AlertParameter6>$Data/Context/Params/Param[1]$</AlertParameter6>
<AlertParameter7>$Data/Context/Params/Param[7]$</AlertParameter7>
<AlertParameter8>$Data/Context/Params/Param[8]$</AlertParameter8>
<AlertParameter9>$Data/Context/Params/Param[9]$</AlertParameter9>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="FirstEventRaised" MonitorTypeStateID="FirstEventRaised" HealthState="Warning"/>
<OperationalState ID="SecondEventRaised" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>DFS Replication</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4012</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">DFSR</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="Microsoft.Windows.FileServer.DFSR.ReplicatedFolder"]/ReplicatedFolderGUID$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>DFS Replication</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">DFSR</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">1004</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">1104</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[1]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="Microsoft.Windows.FileServer.DFSR.ReplicatedFolder"]/ReplicatedFolderGUID$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4002</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4008</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4010</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">4114</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</And>
</Expression>
<Expression>
<And>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">9008</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">9111</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[3]</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">$Target/Property[Type="Microsoft.Windows.FileServer.DFSR.ReplicatedFolder"]/ReplicatedFolderGUID$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</Or>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>