Failed report executions

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

The monitor checks if the number of failed report executions per minute does not exceed the threshold expressed as an absolute value. The monitor will raise an alert and change its state only when several consecutive checks have failed. Note: This monitor is disabled by default. Please use overrides to enable it when necessary.

Knowledge Base article:

Summary

The monitor checks if the number of failed report executions per minute does not exceed the threshold expressed as an absolute value. The monitor will raise an alert and change its state only when several consecutive checks have failed.

Causes

Report executions can fail for a variety of reasons. Some of them can be as follows:

External

The following articles walk through various troubleshooting steps that can be taken to identify the reasons of report rendering failures and how to resolve them:

Troubleshooting Techniques for Report Problems

Troubleshooting Reports: Report Design

Troubleshooting Reports: Report Data Retrieval

Troubleshooting Reports: Report Processing

Troubleshooting Reports: Report Rendering

Troubleshooting Reports: Publishing or Viewing a Report on a Report Server in Native Mode

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.

300

Number of samples

Indicates how many times a measured value should breach a threshold before the state is changed.

6

Synchronization Time

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

 

Threshold

The monitor checks if the number of failed report executions per minute doesn’t exceed the threshold expressed as an absolute value.

100

Timeout for database connection (seconds)

The workflow will fail and register an event if it cannot access the database during the specified period.

15

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.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.ReportingServices.Windows.MonitorType.Instance.ReportsExecutionFailure
RemotableTrue
AccessibilityPublic
Alert Message
SSRS: Report execution failed on instance
Number of failed report executions per minute is too high. Number of failed executions for the last check: {0}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.ReportsExecutionFailure" Accessibility="Public" Enabled="false" Target="RsDiscW!Microsoft.SQLServer.ReportingServices.Windows.Instance" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.ReportingServices.Windows.MonitorType.Instance.ReportsExecutionFailure" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.ReportsExecutionFailure.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='ExecutionFailures']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Warning" MonitorTypeStateID="Error" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Property[Type='RsCore!Microsoft.SQLServer.ReportingServices.Core.Instance']/MachineName$</MachineName>
<InstanceName>$Target/Property[Type='RsCore!Microsoft.SQLServer.ReportingServices.Core.Instance']/InstanceName$</InstanceName>
<DBConnectionString>$Target/Property[Type='RsCore!Microsoft.SQLServer.ReportingServices.Core.Instance']/DBConnectionString$</DBConnectionString>
<DBName>$Target/Property[Type='RsCore!Microsoft.SQLServer.ReportingServices.Core.Instance']/DBName$</DBName>
<SQLCounterName>ExecutionFailures</SQLCounterName>
<PropertyBagName>ExecutionFailures</PropertyBagName>
<Threshold>100</Threshold>
<SampleCount>6</SampleCount>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>