Alle Abonnements anzeigen

So schön ja auch die Möglichkeit ist, einzelne Abonnements einzurichten, so schwierig ist es, den Überblick zu behalten, wenn z. B. Teile eines Reportservers umziehen sollen. Die Pflege einzelner Abonnements setzt gelegentlich auch voraus, dass man sich vorher mal einen Überblick über alle vorhandenen Abonnements zu einem Bericht, oder einem Berichtspfad verschafft.

Berichts-Manager

Leider bietet der Berichts-Manager in diesem Bereich nur einen rudimentären Überblick. Als Informationen werden praktisch nur eine generierte Beschreibung, sowie der Zeitpunkt und Status der letzten Ausführung angeboten. Wer Details sehen möchte, muss jedes Abonnement einzeln öffnen. Die Information, welcher Job im SQL Server Agent mit welchem Abonnement verknüpft ist, lässt sich über den Berichts-Manager überhaupt nicht ermitteln.
Also müsssen wir da selber etwas Hand anlegen!

Überblick verschaffen

Bereits vor einiger Zeit habe ich zwei Skripte veröffentlicht, die zur Anzeige der Abonnements und der fehlerhaften Abonnements verwendet werden können.

Im heutigen Beitrag soll es um die Ergänzung der Informationen gehen, die die zeitliche Einplanung betreffen. Es soll also die Frage beantwortet werden: Wann soll das Abonnement immer laufen?

Die Reporting Services verwalten alle Informationen in frei zugänglichen Tabellen, die allerdings nicht dokumentiert sind. Man sollte sich auch im klaren darüber sein, dass sich in der nächsten Version diese Struktur oder die Inhalte ändern können, ohne dass dieses in der Dokumentation erwähnt wird.

Reportserver..Schedule

Diese Tabelle beinhaltet alle Informationen, die wir zur Auswertung der Abonnements benötigen. Hierin sind sowohl die Daten für normale zeitgesteuerte Abonnements, als auch für ereignisgesteuerte Abonnements (Snapshots) abgelegt.

Einige Felder sind allerdings schlecht lesbar, da dort über eine Bit-Codierung die Informationen abgelegt werden. Hierzu hatte ich ja bereits gestern die Grundlagen beschrieben. Im folgenden werde ich dann bei den Feldern nur noch (Bitmaskierung) als Info angeben und verwende zur angenehmeren Darstellung die Funktionen aus dem gestrigen Beitrag.

Uns interessieren jetzt die folgenden Feldgruppen:

  • Job-Informationen (Für alle Sätze benötigt)
  • RecurrenceType "Day/Week
  • RecurrenceType "Month & Day"
  • RecurrenceType "Month & Week"
  • RecurrenceType "Daily"
  • RecurrenceType "Hourly"
  • RecurrenceType "Once"

Job-Informationen

ScheduleIdJobname im SQL Server Agent
RecurrenceTypeArt der Wiederholung
  1. Once
  2. Hourly
  3. Daily
  4. Day/Week
  5. Month & Day
  6. Month & Week
StartDateZeitanteil = Uhrzeit der Ausführung
StartDateDatumsanteil = Datum der nächsten Ausführung
EndDateDatumsanteil = Endezeitpunkt des Abonnements

Day/Week

WeeksIntervalWochenintervall
DaysOfWeekWochentage (Bitmaskierung)

Month & Day

MonthMonate (Bitmaskierung)
DaysOfMonthTage im Monat (Bitmaskierung)

Month & Week

MonthMonate (Bitmaskierung)
MonthlyWeekWoche des Monats
DaysOfWeekWochentage (Bitmaskierung)

Daily

DaysIntervalTagesintervall

Hourly

MinutesIntervalMinutenintervall

Once

siehe Job-InformationenKeine zusätzlichen Felder

Auswertung der Abonnements

Hierzu kann man sich einen Bericht erstellen, der für jeden abonnierten Bericht einen Abschnitt enthält. Die Angaben zum Scheduler kommen in meinem Beispiel über einen Unterbericht. Die Verknüpfung erfolgt über den Job-Namen.

Anmerkungen zum Screenshot

Es gibt einige Punkte, auf die ich hier eingehen möchte:

  1. An dieser Stelle gebe ich den Pfad aus, unter dem der Bericht zu finden ist.
  2. Hier steht der Name des Berichts
  3. Falls ein Abonnement bereits beendet ist, wird es rot markiert und das Ende-Datum erscheint als Tool-Tip, wenn man die Maus über die rote Markierung bewegt.
  4. Das ist der Unterbericht, mit den Informationen zu den einzelnen Arten der Einplanung

Der Unterbericht verwendet verschiedene Tabellen, die in Abhängigkeit vom RecurrenceTyp ein- oder ausgeblendet werden. Jede einzelne Tabelle beinhaltet die Feldliste, die ich oben bereits angegeben habe.

  Bitmaskierung Jobs Scheduler
  Bitmaskierung Jobs Scheduler Complete