Procesor planowania i dostarczania

Program Reporting Services zawiera składnik Procesor planowania i dostarczania, który obsługuje zaplanowane operacje i steruje rozszerzeniami dostarczania używanymi do wypychania raportów do skrzynek odbiorczych poczty e-mail lub udostępnionych folderów w lokalizacjach docelowych.

Procesor planowania i dostarczania jest wewnętrznym składnikiem używanym przez serwer raportów do przetwarzania subskrypcji i dostarczania raportów, odświeżania migawki lub ustawiania wygaśnięcia raportu w pamięci podręcznej.Jeśli konfigurujesz funkcje serwera lub rozwiązujesz problem z subskrypcją lub dostarczaniem, informacje zawarte w tym temacie będą pomocne w zrozumieniu etapów zaplanowanego przetwarzania i zależności od innych usług i technologii.W tym temacie przedstawiono również ustawienia konfiguracji, które służą do zarządzania kolejką zdarzeń.

W jaki sposób działa planowanie i dostarczanie

Procesor planowania i dostarczania zapewnia następujące funkcje:

  • Utrzymuje kolejki zdarzeń i powiadomienia w bazie danych serwera raportów.W danym wdrożeniu limit czasu skali kolejki jest współużytkowane przez wszystkie serwery raportu wdrażanie.

  • Wywołuje procesor raportu w celu wykonania raportów, przetwarza subskrypcje lub czyści buforowany raport.Całe przetwarzanie raportów przeprowadzane w wyniku zdarzenia harmonogramu jest wykonywane jako proces w tle.

  • Wywołuje rozszerzenie usługi dostarczania, które jest określone w subskrypcji, dzięki czemu raport może być dostarczony.

Inne aspekty operacji planowania i dostarczania są obsługiwane przez inne składniki i usługi, które współpracują z procesorem planowania i dostarczania.W szczególności procesor planowania i dostarczania działa w usłudze serwera raportów i używa agenta programu SQL Server jako czasomierza do generowania zaplanowanych zdarzeń.Poniżej krok po kroku opisano działanie operacji według harmonogramu we wdrożeniu usług Reporting Services:

  1. Zaplanowana operacja jest zdefiniowana, gdy użytkownik tworzy harmonogram.Harmonogram określa datę i czas, które zostaną użyte do zainicjowania subskrypcji dostarczania raportu, odświeżenia migawki lub zdezaktualizowania pamięci podręcznej.

  2. Serwer raportów zapisuje informacje o harmonogramie w bazie danych serwera raportów.

  3. Serwer raportów tworzy odpowiednie zadanie w usłudze SQL Server Agent, w którym uwzględniono dostarczone informacje o harmonogramie.Zadania są tworzone za pomocą procedury składowanej przy użyciu istniejących otwartych połączeń z bazą danych serwera raportów.

  4. Usługa SQL Server Agent uruchamia zadanie według daty i godziny określonych w harmonogramie.To zadanie tworzy zdarzenie, które jest dodawane do kolejki obsługiwanej przez usługi Reporting Services.

  5. Zdarzenie powoduje wystąpienie przetwarzania subskrypcji lub raportu.Zdarzenia są przetwarzane po ich wykryciu w kolejce i odpowiednio przetwarzane lub dostarczane są wówczas raporty.

    Przed przetworzeniem zadań procesor planowania i dostarczania wykonuje etap uwierzytelniania, aby sprawdzić, czy właściciel subskrypcji ma uprawnienia do wyświetlenia raportu.Aby uzyskać więcej informacji dotyczących subskrypcji, zobacz Subscription Processing.

Usługi Reporting Services przechowują kolejkę zdarzeń dla wszystkich zaplanowanych działań.Sonduje kolejkę w regularnych odstępach czasu, aby sprawdzić, czy są nowe zdarzenia.Domyślnie kolejka jest skanowany w odstępach co 10 sekund.Interwał można zmienić, modyfikując PollingInterval, IsNotificationService, i IsEventServiceustawień konfiguracja w pliku RSReportServer.config.Aby uzyskać więcej informacji, zobacz RSReportServer Configuration File.

Zależności serwera

Procesor planowania i dostarczania wymaga uruchomienia usługi serwera raportów i usługi SQL Server Agent.Funkcja przetwarzania harmonogramu i dostarczania musi być włączona za pomocą właściwości ScheduleEventsAndReportDeliveryEnabled zestawu reguł konfiguracji obszaru powierzchni modułu Reporting Services w przystawce zarządzania za pomocą zasad.Aby zaplanowane operacje zostały wykonane, musi działać zarówno agent programu SQL Server, jak i usługa serwera raportów.

Uwaga

Można użyć aspektu Konfiguracji obszaru powierzchni dla usług raportowania w celu zatrzymania operacji planowania - tymczasowo lub trwale.Chociaż można tworzyć i wdrażać niestandardowe rozszerzenia dostarczania, sam Procesor planowania i dostarczania nie jest rozszerzalny.Nie można zmienić sposobu zarządzania zdarzeniami i powiadomieniami.Aby uzyskać więcej informacji na temat wyłączania funkcji, zobacz How to: Turn Reporting Services Features On or Off.

Skutki zatrzymania agenta programu SQL Server

W przetwarzaniu zaplanowanych raportów domyślnie używana jest usługa SQL Server Agent.Jeśli usługa zostanie zatrzymana, żadne nowe żądania przetwarzania nie są dodawane do kolejki, chyba że zostaną dodane programowo za pośrednictwem metody FireEvent(String, String).Po ponownym uruchomieniu usługi wznawiane są zadania, które tworzą żądania przetwarzania raportów.Serwer raportów nie próbuje odtworzyć zadań przetwarzania raportów, które mogły mieć miejsce w przeszłości, gdy program SQL Server Agent był w trybie offline.Jeśli program SQL Server Agent zostanie zatrzymany na tydzień, wtedy wszystkie zaplanowane operacje zostaną utracone na ten tydzień.

Uwaga

Funkcje, które zawiera program SQL Server Agent dla usług Reporting Services, można zastąpić niestandardowym kodem, który używa metody FireEvent(String, String) w celu dodania zdarzeń harmonogramu do kolejki.

Skutki zatrzymania usługi serwer raportów

Po zatrzymaniu usługi serwera raportów program SQL Server Agent w dalszym ciągu dodaje żądania przetwarzania raportów do kolejki.Informacje o stanie przekazywane przez usługę SQL Server Agent wskazują, że zadanie zakończyło się pomyślnie.Ponieważ jednak usługa serwera raportów zostanie zatrzymana, przetwarzania raportów w rzeczywistości nie nastąpi.Żądania będą nadal kumulowane w kolejce, aż do ponownego uruchomienia usługi serwera raportów.Po ponownym uruchomieniu usługi serwera raportów wszystkie żądania przetwarzania raportów umieszczone w kolejce są przetwarzane kolejno.