SSRS: Windows Service state

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

The monitor alerts if the SSRS Windows service is not in the running state for a longer period than the threshold.

Knowledge Base article:

Summary

This monitor checks the state of the SQL Reporting Services Windows Service.

Causes

"Not Running" state of this monitor indicates that SQL Reporting Services service is configured to start automatically, but in "Stopped" state during the specific period. This period is defined in monitor properties and can be overridden. By default, this value is 900 seconds (15 minutes). If SQL Reporting Services turns back to "Running" state faster than that time, it means that it has been just reset.

If this monitor appears to be too disturbing in a specific environment, please increase "Unavailable Time" value. Otherwise if it is too latent, please reduce "Unavailable Time" value.

In general, Windows service could be stopped by many reasons including the following:

Resolutions

You can view other alerts for this instance of SQL Reporting Services that may be related to this issue using the following link:

View SQL Reporting Services Alerts

Overridable Parameters

Name

Description

Default Value

Alert only if service startup type is automatic

This may be set to 'true' or 'false' only. The workflow will not consider the current startup type setting of the service if this parameter is set to 'false'. The default is 'true'.

Yes

Enabled

Enables or disables the workflow.

Yes

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.

60

Number of samples

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

15

Synchronization Time

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

 

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.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.ReportingServices.Windows.MonitorType.Instance.WindowsServiceState
RemotableTrue
AccessibilityPublic
Alert Message
SSRS: Windows Service stopped
The Windows service for the Reporting Services instance {1} has stopped on computer {0}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.WindowsServiceState" Accessibility="Public" Enabled="true" Target="RsDiscW!Microsoft.SQLServer.ReportingServices.Windows.Instance" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.ReportingServices.Windows.MonitorType.Instance.WindowsServiceState" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.ReportingServices.Windows.Monitor.Instance.WindowsServiceState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="RsCore!Microsoft.SQLServer.ReportingServices.Core.Instance"]/InstanceName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Running" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="NotRunning" HealthState="Error"/>
</OperationalStates>
<Configuration>
<ServiceName>$Target/Property[Type="RsDiscW!Microsoft.SQLServer.ReportingServices.Windows.Instance"]/ServiceName$</ServiceName>
<CheckStartupType>true</CheckStartupType>
<SampleCount>15</SampleCount>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>60</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>