[英]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
我沒有用過,但是我聽說過
沒有內置的方法可以做到這一點。 您將必須解析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.