繁体   English   中英

监视SSRS订阅错误

[英]Monitor SSRS Subscription Errors

使用SSRS 2012,我们利用报告订阅来保存报告网络位置并通过电子邮件发送报告。 我熟悉如何调试错误,但是我正在寻找一种解决方案,以在订阅发送失败时提醒我们的支持团队。 称我为主动很疯狂。

我看到了一种监视ReportServer表状态的解决方案,但是它假定所有订阅都是通过电子邮件进行的(仅处理电子邮件状态)

我还看到了执行日志表(ExecutionLog3),但该表似乎无法捕获所有错误。 我通过删除对文件位置的网络访问来强制订阅失败,但是该错误未出现在表中。

我想编写一个SSRS报告,可以运行该报告来查看一天中发生的所有订阅错误。 任何建议表示赞赏。

这只会处理最后一条状态消息,因此无法完全回答问题(我遇到了此帖子,因为我正在寻找相同的答案),但是它对于捕获所有订阅错误(包括文件)似乎确实对我有用分享问题:

select count(*) 
from ReportServer.dbo.[Subscriptions] S 
where 0 = case 
          when S.[LastStatus] = 'New Subscription' then 1 
          when substring(S.[LastStatus],1,9) = 'Mail Sent' then 1 
          when substring(S.[LastStatus],1,5) = 'Done:' 
           and right(S.[LastStatus],9) = '0 errors.' then 1 
          when substring(S.[LastStatus],1,9) = 'The file ' 
           and patindex('%has been saved to the%',S.[LastStatus]) > 1 
           and right(S.[LastStatus],11) = 'file share.' then 1 
          else 0 
      end

我已经使用了Microsoft的Report Server Diagnostic Reports Pack

有关报表服务器诊断报告(快照)的更多信息

下载报告服务器诊断报告包的链接

我没有用过,但是我听说过

免费的SQL Monitor SSRS报告包

没有内置的方法可以做到这一点。 您将必须解析Windows错误日志或Reporting Services日志。 我没有尝试过,但是ssrs api可能会返回基于订阅的报告的最新订阅状态,但是ReportingService数据库之外没有历史日志,甚至我也不确定是否记录了失败。

看看我在Jeff Prom的博客http://jeffprom.com/2008/08/22/ssrs-failed-subscription-notifications/上找到的解决方案

SELECT C.Name, S.LastRunTime, S.LastStatus, S.Description
 FROM Subscriptions AS S
 LEFT OUTER JOIN [Catalog] AS C
 ON C.ItemID = S.Report_OID
 WHERE LEFT (S.LastStatus, 12) != ‘Mail sent to’
   AND LEFT (S.LastStatus, 12) != ‘New Subscrip’

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM