Database Mirror Witness Status Summary

RABurri.SQLServer.2008.Mirroring.MirrorDependsOnDBWitnessState (DependencyMonitor)

Checks if a database mirror witness is connected.

Knowledge Base article:

Summary

This monitor checks if the witness of a SQL Server DB mirror is connected.

Causes

Warning state when the witness is disconnected.

Resolutions

Connect to the DB Engines and correct issues that caused the mirror witness to fail.

Use ‘SQL Server Management Studio’ to access the mirroring page in a DB’s properties. Or use the ‘Database Mirroring Monitor’.

Additional

Monitor is implemented as a summary roll up monitor to assure raising only a single alert.

Element properties:

TargetRABurri.SQLServer.2008.Mirroring.ComponentGroup
Parent MonitorSystem.Health.AvailabilityState
AlgorithmWorstOf
Source MonitorRABurri.SQLServer.2008.MirroredDatabase.WitnessState.Monitor
RelationshipRABurri.SQLServer.2008.Mirror.ComponentGroupContainsDB
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
RemotableTrue
AccessibilityPublic
Alert Message
Database Mirror Witness not Connected
Database mirror {0} has lost connection to its witness.

Source Code:

<DependencyMonitor ID="RABurri.SQLServer.2008.Mirroring.MirrorDependsOnDBWitnessState" Accessibility="Public" Enabled="true" Target="RABurri.SQLServer.2008.Mirroring.ComponentGroup" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" RelationshipType="RABurri.SQLServer.2008.Mirror.ComponentGroupContainsDB" MemberMonitor="RABurri.SQLServer.2008.MirroredDatabase.WitnessState.Monitor">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="RABurri.SQLServer.2008.Mirroring.MirrorDependsOnDBWitnessState_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="MirroringLibrary!RABurri.SQLServer.Mirroring.ComponentGroup"]/DatabaseName$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<Algorithm>WorstOf</Algorithm>
</DependencyMonitor>