簡體   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