Configuration service could not read changes from the database in the last 30 min.(Critical Level)

Microsoft.SystemCenter.ConfigurationService.DatabaseReadConsistencyCriticalLevel (UnitMonitor)

The configuration service cannot receive any configuration changes from the database in this state.

Knowledge Base article:

Summary

This monitor detects if there are problems with the Management Configuration service reading from the Operational Database. It indicates that the Management Configuration service does have access to the Operational Database, but is unable to calculate which objects need updated configuration because there is too much churn updates/deletes of objects due to a flood of discovery data.

Configuration

The default configuration is to detect if the database has not stabilized in the last 30 minutes.

Causes

This may happen if there is a flood of discovery data coming from all the Health Services at once and the database is still busy being updated on what objects have been discovered by each Health Service.

Resolutions

Check the database server health to ensure that it is under optimal performance conditions. If the database server is suffering from degraded performance or is not sized appropriately, this could be the cause for the Management Configuration service not being able to calculate which objects need updated configuration because each of the Collection Management Servers are constantly inserting discovery data.

Another problem could be that the Health Services are simply inserting too much discovery data. If this is the first time these objects are being discovered, this may be normal until everything has been discovered.

If this happening even after the initial deployment of agents and/or new Management Packs, contact Customer Support Services (CSS) with the name of this rule and the information from the state change event.

Element properties:

TargetMicrosoft.SystemCenter.RootManagementServer
Parent MonitorMicrosoft.SystemCenter.ConfigurationService.DatabaseReadConsistencyHealthRollup
CategorySystem
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.MissingCorrelatedEventLogSingleEventLog2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Configuration Service Database Read Consistency Unhealthy
The configuration service cannot read consistent state from the database due to too much database activity.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.ConfigurationService.DatabaseReadConsistencyCriticalLevel" Accessibility="Public" Enabled="true" Target="SCLibrary!Microsoft.SystemCenter.RootManagementServer" ParentMonitorID="Microsoft.SystemCenter.ConfigurationService.DatabaseReadConsistencyHealthRollup" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.MissingCorrelatedEventLogSingleEventLog2StateMonitorType" ConfirmDelivery="false">
<Category>System</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.ConfigurationService.DatabaseReadConsistencyCriticalLevel_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Healthy" MonitorTypeStateID="EventRaised" HealthState="Success"/>
<OperationalState ID="NotHealthy" MonitorTypeStateID="MissingCorrelatedEventRaised" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Operations Manager</LogName>
<Expression>
<Or>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">29203</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">OpsMgr Config Service</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">29000</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">OpsMgr Config Service</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</Or>
</Expression>
<FirstMissingCorrelatedComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstMissingCorrelatedComputerName>
<FirstMissingCorrelatedLogName>Operations Manager</FirstMissingCorrelatedLogName>
<FirstMissingCorrelatedExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">29202</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">OpsMgr Config Service</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</FirstMissingCorrelatedExpression>
<SecondMissingCorrelatedComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondMissingCorrelatedComputerName>
<SecondMissingCorrelatedLogName>Operations Manager</SecondMissingCorrelatedLogName>
<SecondMissingCorrelatedExpression>
<Or>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">29203</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">OpsMgr Config Service</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">29000</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">OpsMgr Config Service</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</Or>
</SecondMissingCorrelatedExpression>
<Correlator>
<CorrelationExpression>
<Expression/>
</CorrelationExpression>
<Count>1</Count>
<Interval>1800</Interval>
<CorrelationOrder>InSequence</CorrelationOrder>
<CorrelationItemPolicy>Last</CorrelationItemPolicy>
</Correlator>
</Configuration>
</UnitMonitor>