Reporting services 在reporting services中遇到错误时,如何设置电子邮件通知
我有一些在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 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