DFS-R: NTFS Change Journal Creation

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

This object monitors the creation of NTFS change journals for volumes hosting replicated folders for which a change journal doesn’t already exist, and creates a Warning alert if creating the journal fails.

Knowledge Base article:

Summary

This object monitors the creation of NTFS change journals for volumes hosting replicated folders for which a change journal doesn’t already exist, and creates a Warning alert if creating the journal fails. It does so by looking for the presence of DFS Replication Event 2210.

Causes

An unhealthy state of this monitor indicates that DFS Replication failed to create an NTFS change journal on a volume hosting one or more replicated folders. Replication is disabled for all replicated folders on the affected volume.

This can occur if there isn’t at least 512 MB of free space available on the volume.

Resolutions

Increase available disk space

If the volume hosting the staging folder or debug log files is low on disk space, increase the available disk space on the volume, increase the size of the volume, or change the path of the staging folder to a volume with more available disk space.

To manually check the amount of available disk space, open a command prompt window and type the following command, where [servername] is the name of the server hosting the affected folder and [domain\user] is your user name:

WMIC /node: "[servername]" /user: [domain\user] volume list status.

If the change journal has an internal error and 512 MB of space cannot be recovered by moving or deleting files, run Chkdsk on the volume to recover the space used by the corrupt journal.

After freeing up space, restart the DFS Replication service.

To restart the service remotely by using the sc command, open a command prompt window and then do the following:

1.To stop the service, type the following command, where [servername] is the Universal Naming Convention (UNC) path to the remote server:

sc[servername] stop dfsr

2.To confirm that the service is in the STOPPED state, type the following command:

sc[servername] query dfsr

3.To restart the service, type the following command:

sc [servername] start dfsr

Note: To restart a service, you must be a member of the local Administrators group on the affected server. You can also restart services using the Services snap-in, the Windows PowerShell Start-Service and Stop-Service cmdlets, or command-line tools such as net stop and net start.

Relocate the replicated folder

If there isn’t enough free space available on the volume hosting the replicated folder, consider relocating the replicated folder to another volume with more free space. To do so, remove the server’s membership in the replication group and recreate it. Doing so requires membership in the Domain Admins group or delegated permissions.

Verification

This monitor automatically resets to a healthy state after the issue is resolved.

Additional

Element properties:

TargetMicrosoft.Windows.FileServer.DFSR.Volume
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: Failed to Create an NTFS Change Journal

DFS Replication failed to create an NTFS change journal on a volume hosting one or more replicated folders for which a change journal didn't already exist. Replication is disabled for all replicated folders on the affected volume.
Additional Information
Volume: {0}
Required free space (MB): {1}
Error: {2} ({3})
Volume GUID: {4}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.FileServer.DFSR.UsnJournalCreationFailureMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.Windows.FileServer.DFSR.Volume" 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.UsnJournalCreationFailureMonitor_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Params/Param[2]$</AlertParameter1>
<AlertParameter2>$Data/Context/Params/Param[3]$</AlertParameter2>
<AlertParameter3>$Data/Context/Params/Param[4]$</AlertParameter3>
<AlertParameter4>$Data/Context/Params/Param[5]$</AlertParameter4>
<AlertParameter5>$Data/Context/Params/Param[1]$</AlertParameter5>
</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">2210</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.Volume"]/VolumeGUID$</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.Volume"]/VolumeGUID$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">2002</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">2008</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">2010</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</And>
</Expression>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">9111</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">Params/Param[2]</XPathQuery>
</ValueExpression>
<Operator>ContainsSubstring</Operator>
<Pattern>$Target/Property[Type="System!System.Entity"]/DisplayName$</Pattern>
</RegExExpression>
</Expression>
</And>
</Expression>
</Or>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>