排程與傳遞處理器
SQL Server Reporting Services 包含一個排程與傳遞處理器元件,可支援排程的作業和驅動傳遞延伸模組,將報表發送至電子郵件收件匣或共用資料夾目的地。排程與傳遞處理器提供下列功能:
- 維護事件與通知的佇列。在向外延展部署中,佇列會在部署中的所有報表伺服器間共用。
- 呼叫報表處理器以執行報表、處理訂閱或清除快取報表。因為排程事件而發生之所有報表處理,是由報表伺服器 Windows 服務執行,而非由報表伺服器 Web 服務執行。
- 呼叫在訂閱中指定的傳遞延伸模組,以便可以傳遞報表。
排程和傳遞作業的其他層面是由使用「排程與傳遞處理器」的其他元件和服務所處理。明確地說,「排程與傳遞處理器」會在報表伺服器 Windows 服務中執行,並使用 SQL Server Agent 做為計時器來產生排程的事件。下列清單會描述排程的作業如何在 Reporting Services 部署中運作:
- 當使用者建立排程時,會定義排程的作業。排程會定義執行報表所將使用的日期和時間、重新整理快照集,或是讓快取到期。
- 報表伺服器會將排程資訊儲存在報表伺服器資料庫中。
- 報表伺服器在 SQL Server Agent 中建立對應的工作,然後根據提供的排程資訊執行工作。系統會使用與報表伺服器資料庫之間的現有開啟連接,透過預存程序建立工作。
- SQL Server Agent 會在排程中指定的日期和時間執行作業,而此作業會建立一個事件,該事件會加入到由 Reporting Services 所維護的佇列中。
- 事件導致報表或訂閱程序執行。在佇列中偵測到事件時會加以處理,而且會相對應地處理或傳遞報表。
Reporting Services 會針對所有排程的作業維護事件佇列,也會定期輪詢此佇列,以檢查是否有新的事件。依預設,每隔 10 秒鐘會掃描一次佇列。您可以變更此間隔,其方式是在 RSReportServer.config 檔中修改 PollingInterval、IsNotificationService 和 IsEventService 組態設定。如需詳細資訊,請參閱<RSReportServer 組態檔>。
伺服器相依性
排程與傳遞處理器需要啟動報表伺服器 Windows 服務與 SQL Server Agent。排程與傳遞處理功能必須透過 SQL Server 介面區組態工具啟用。SQL Server Agent 與報表伺服器 Windows 服務都必須執行,排程的作業才會發生。
附註: |
---|
您可以使用介面區組態工具,暫時或永久地停止排程的作業。排程與傳遞處理器不可延伸,也沒有組態設定。您無法變更它管理事件與通知的方式。如需有關「介面區組態」工具的詳細資訊,請參閱<SQL Server 介面區組態>。 |
停止 SQL Server Agent 的影響
依預設,排程的報表是使用 SQL Server Agent。如果您停止服務,則除非您透過 FireEvent 方法,利用程式加入處理要求,否則不會有新處理要求加入佇列。您重新啟動服務後,建立報表處理要求的作業就會繼續。報表伺服器不會嘗試重新建立可能在 SQL Server Agent 離線期間所發生的報表處理作業。如果您停止 SQL Server Agent 一個星期,那個星期內所有排程的作業都會遺失。
附註: |
---|
SQL Server Agent 為 Reporting Services 提供的功能,可以由使用 FireEvent 方法,將排程事件加入佇列的自訂程式碼取代。 |
停止報表伺服器 Windows 服務的影響
如果停止報表伺服器 Windows 服務,SQL Server Agent 會繼續將報表處理要求加入佇列。SQL Server Agent 中的狀態資訊會指出作業成功。但是,因為報表伺服器 Windows 服務已停止,因此實際上沒有任何報表處理發生。要求將繼續在佇列中累積,直到您重新啟動報表伺服器 Windows 服務為止。一旦您重新啟動報表伺服器 Windows 服務之後,佇列中的所有報表處理要求都會依照順序處理。
請參閱
概念
RSReportServer 組態檔
啟動與停止報表伺服器 Windows 服務
Reporting Services 元件概觀