Relationships between Agents and Management Servers Monitor

Microsoft.SystemCenter.OpsMgrDB.DetectDuplicateRelationshipsforAgentsToServers (UnitMonitor)

This monitor detects potential problems with the operational database, by checking for corrupted records of relationships between agents and management servers that will stop generating configuration for the entire management group resulting in all systems running on old configuration.

Knowledge Base article:

Summary

Monitor that checks for bad duplicate relationship records between agents and servers.

Causes

One of the most common forms of corrupt data is when agents end up having more than one relationship to a given management server (either primary or secondary).

Resolutions

To fix this problem run the following task in the Operations console. Run the Fix duplicate relationships for agents to server in operational database task

Element properties:

TargetMicrosoft.SystemCenter.OpsMgrDBWatcher
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SystemCenter.2007.OpsMgrDB.DetectDuplicateRelationshipsforAgentsToServers.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Relationships between Agents and Management Servers Monitor alert message
Duplicate relationships between agents and management servers found in server {0} for database {1}.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.OpsMgrDB.DetectDuplicateRelationshipsforAgentsToServers" Accessibility="Public" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.OpsMgrDBWatcher" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SystemCenter.2007.OpsMgrDB.DetectDuplicateRelationshipsforAgentsToServers.MonitorType" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.OpsMgrDB.DetectDuplicateRelationshipsforAgentsToServers.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SCLibrary!Microsoft.SystemCenter.OpsMgrDBWatcher"]/DatabaseServerName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SCLibrary!Microsoft.SystemCenter.OpsMgrDBWatcher"]/DatabaseName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="HealthyNoDuplicates" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="ErrorDuplicatesFound" MonitorTypeStateID="Critical" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>1800</IntervalSeconds>
<Synctime/>
<TimeoutSeconds>300</TimeoutSeconds>
<DatabaseServerName>$Target/Property[Type="SCLibrary!Microsoft.SystemCenter.OpsMgrDBWatcher"]/DatabaseServerName$</DatabaseServerName>
<DatabaseName>$Target/Property[Type="SCLibrary!Microsoft.SystemCenter.OpsMgrDBWatcher"]/DatabaseName$</DatabaseName>
</Configuration>
</UnitMonitor>