Configuration conflict with SQL Server

Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.ConfigurationConflictWithSQLServer (UnitMonitor)

The monitor alerts if there is a SQL Server process running on the server, and WorkingSetMaximum setting for the SSRS Instance does not allow enough memory for the SQL server process. Note: This monitor is disabled by default. Please use overrides to enable it when necessary.

Knowledge Base article:

Summary

The monitor alerts if there is a SQL Server process running on the server and WorkingSetMaximum setting for the SSRS Instance does not allow enough memory for the SQL server process.

Causes

SSRS and SQL Server total limit configurations conflict. This can be caused by the following reasons:

Resolutions

This issue may be resolved by any of the following methods:

Overridable Parameters

Name

Description

Default Value

Enabled

Enables or disables the workflow

No

Generates Alerts

Defines whether the workflow generates an Alert

Yes

Interval (seconds)

The recurring interval of time in seconds in which to run the workflow.

604800

Synchronization Time

The synchronization time specified by using a 24-hour format. May be omitted.

 

Threshold

The monitor will change state and register an alert, if SSRS and SQL Server are running on the same box, and WorkingSetMaximum exceeds the threshold.

40

Timeout (seconds)

Specifies the time the workflow is allowed to run before being closed and marked as failed.

300

Element properties:

TargetMicrosoft.SQLServer.ReportingServices.Windows.Instance
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.ReportingServices.Windows.MonitorType.Instance.ConfigurationConflictWithSQLServer
RemotableTrue
AccessibilityPublic
Alert Message
SSRS: Memory configuration conflict between SSRS and SQL Server.
Total Memory Configuration ({2} GB) leaves {0} GB out of {1} GB for operating system and SQL Server that is less than the threshold.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.ConfigurationConflictWithSQLServer" Accessibility="Public" Enabled="false" Target="RsDiscW!Microsoft.SQLServer.ReportingServices.Windows.Instance" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.ReportingServices.Windows.MonitorType.Instance.ConfigurationConflictWithSQLServer" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.ConfigurationConflictWithSQLServer.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='MemoryAvailableForOSGB']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='TotalPhysicalMemoryGB']$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='WorkingSetMaximumGB']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Warning" MonitorTypeStateID="ConfigurationConflict" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="NoConfigurationConflict" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ServiceName>$Target/Property[Type="RsDiscW!Microsoft.SQLServer.ReportingServices.Windows.Instance"]/ServiceName$</ServiceName>
<ConfigurationFile>$Target/Property[Type="RsDiscW!Microsoft.SQLServer.ReportingServices.Windows.Instance"]/ConfigurationFile$</ConfigurationFile>
<InstanceVersion>$Target/Property[Type="RsCore!Microsoft.SQLServer.ReportingServices.Core.Instance"]/Version$</InstanceVersion>
<Threshold>40</Threshold>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>604800</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>