Reporting services 在reporting services中遇到错误时,如何设置电子邮件通知

Reporting services 在reporting services中遇到错误时,如何设置电子邮件通知,reporting-services,Reporting Services,我有一些在reporting services中配置为电子邮件传递的报告。昨晚我们遇到了一些网络故障,reporting services无法连接到数据库引擎 是否有任何方法可以配置在无法交付订阅时发送的电子邮件通知 我正在使用reporting services 2008 R2当无法发送电子邮件时,是否需要电子邮件 直接在SSR中,这是不可能做到的。但是您可以让SQL代理监视订阅的状态。SQL代理可以很容易地配置为发送电子邮件。上次运行的状态存储在订阅表中 发件人: 但这些方法都没有对电子邮件

我有一些在reporting services中配置为电子邮件传递的报告。昨晚我们遇到了一些网络故障,reporting services无法连接到数据库引擎

是否有任何方法可以配置在无法交付订阅时发送的电子邮件通知


我正在使用reporting services 2008 R2

当无法发送电子邮件时,是否需要电子邮件

直接在SSR中,这是不可能做到的。但是您可以让SQL代理监视订阅的状态。SQL代理可以很容易地配置为发送电子邮件。上次运行的状态存储在订阅表中

发件人:

但这些方法都没有对电子邮件进行排队:他们会尝试,如果出现网络问题,他们会给出丢失电子邮件的消息。您可以在Reporting Services计算机上安装SMTP中继来解决此问题

Below the script will send notification too..


--Below script can be used to send the Notification everyday morning to your email id. 

DECLARE @tableHTML  NVARCHAR(MAX) ;
DECLARE @COUNT INT
DECLARE @FileCreationDate varchar(20)

SET @COUNT = (SELECT count(*)
FROM ReportServer.dbo.Subscriptions s
WHERE (s.LastStatus LIKE 'Failure%' OR s.LastStatus LIKE 'Error%')
AND s.LastRunTime > DATEADD(D, -1, GETDATE()))

IF @COUNT >0 
BEGIN

    SET @tableHTML =
        N'<H1>SSRS Report Subscription Failures</H1>' +
        N'<table border="1" bgcolor="##F0F0E0" >' + 
        N'<font color = "White"> <tr><th BGCOLOR ="#008080"> ScheduleID</th><th BGCOLOR ="#008080">Name</th>' +
        N'<th BGCOLOR ="#008080">Description</th><th BGCOLOR ="#008080">DeliveryExtension</th><th BGCOLOR ="#008080">LastStatus</th>' +    N'<th BGCOLOR ="#008080">LastRunTime</th>' +      
        N'<th BGCOLOR ="#008080">Path</th></tr> </font>' +
        CAST ( ( select 
        TD = sc.ScheduleID , '', 
        TD = c.Name , '', 
        TD = sb.[Description] , '', 
        TD = sb.DeliveryExtension , '', 
        TD = sb.LastStatus , '', 
        TD = sb.LastRunTime , '', 
        TD = c.Path  
        FROM ReportServer.dbo.ReportSchedule rs
        INNER JOIN ReportServer.dbo.Schedule sc ON rs.ScheduleID = sc.ScheduleID
        INNER JOIN ReportServer.dbo.Subscriptions sb ON rs.SubscriptionID = sb.SubscriptionID
        INNER JOIN ReportServer.dbo.[Catalog] c ON rs.ReportID = c.ItemID AND sb.Report_OID = c.ItemID
        WHERE (sb.LastStatus LIKE 'Failure%' OR sb.LastStatus LIKE 'Error%')
        AND sb.LastRunTime > DATEADD(D, -1, GETDATE())
        FOR XML PATH('tr'), TYPE 
        ) AS NVARCHAR(MAX) ) +
        N'</table>' ;

    EXEC msdb.dbo.sp_send_dbmail @recipients='Mailid',
        @subject = 'SSRS Subscription Failures',
        @body = @tableHTML,
        @body_format = 'HTML' ;
END
Below the script will send notification too..


--Below script can be used to send the Notification everyday morning to your email id. 

DECLARE @tableHTML  NVARCHAR(MAX) ;
DECLARE @COUNT INT
DECLARE @FileCreationDate varchar(20)

SET @COUNT = (SELECT count(*)
FROM ReportServer.dbo.Subscriptions s
WHERE (s.LastStatus LIKE 'Failure%' OR s.LastStatus LIKE 'Error%')
AND s.LastRunTime > DATEADD(D, -1, GETDATE()))

IF @COUNT >0 
BEGIN

    SET @tableHTML =
        N'<H1>SSRS Report Subscription Failures</H1>' +
        N'<table border="1" bgcolor="##F0F0E0" >' + 
        N'<font color = "White"> <tr><th BGCOLOR ="#008080"> ScheduleID</th><th BGCOLOR ="#008080">Name</th>' +
        N'<th BGCOLOR ="#008080">Description</th><th BGCOLOR ="#008080">DeliveryExtension</th><th BGCOLOR ="#008080">LastStatus</th>' +    N'<th BGCOLOR ="#008080">LastRunTime</th>' +      
        N'<th BGCOLOR ="#008080">Path</th></tr> </font>' +
        CAST ( ( select 
        TD = sc.ScheduleID , '', 
        TD = c.Name , '', 
        TD = sb.[Description] , '', 
        TD = sb.DeliveryExtension , '', 
        TD = sb.LastStatus , '', 
        TD = sb.LastRunTime , '', 
        TD = c.Path  
        FROM ReportServer.dbo.ReportSchedule rs
        INNER JOIN ReportServer.dbo.Schedule sc ON rs.ScheduleID = sc.ScheduleID
        INNER JOIN ReportServer.dbo.Subscriptions sb ON rs.SubscriptionID = sb.SubscriptionID
        INNER JOIN ReportServer.dbo.[Catalog] c ON rs.ReportID = c.ItemID AND sb.Report_OID = c.ItemID
        WHERE (sb.LastStatus LIKE 'Failure%' OR sb.LastStatus LIKE 'Error%')
        AND sb.LastRunTime > DATEADD(D, -1, GETDATE())
        FOR XML PATH('tr'), TYPE 
        ) AS NVARCHAR(MAX) ) +
        N'</table>' ;

    EXEC msdb.dbo.sp_send_dbmail @recipients='Mailid',
        @subject = 'SSRS Subscription Failures',
        @body = @tableHTML,
        @body_format = 'HTML' ;
END