Definieren von geplanten Regeln

Wenn Ihre Anwendung geplante Abonnements unterstützt, müssen Sie mindestens eine geplante Regel definieren.

Geplante Regeln sind benannte Mengen von einer oder mehreren Transact-SQL-Abfragen, die Benachrichtigungen für geplante Abonnements erstellen. Geplante Regeln ändern optional die Daten in Abonnementverläufen. In jedem Quantum werden geplante Regeln ausgeführt und werten nur die Abonnements aus, deren geplanter Zeitpunkt für die Auswertung sich in dem Quantum befindet.

ms171328.note(de-de,SQL.90).gifHinweis:
Der genaue Zeitpunkt für das Auslösen von geplanten Regeln hängt von der Quantumdauer ab.

Jede Abonnementklasse kann eine oder mehrere geplante Regeln enthalten. Sie können jedoch nicht die Reihenfolge angeben, in der geplante Regeln ausgelöst werden. Geplante Regeln können in beliebiger Reihenfolge ausgelöst werden.

Verarbeitung von geplanten Regeln

Geplante Abonnements generieren ihre zugehörigen Benachrichtigungen zu geplanten Zeiten, die normalerweise beim Erstellen des Abonnements vom Abonnenten angegeben werden. Notification Services verwendet den folgenden Prozess, um Benachrichtigungen von geplanten Regeln zu generieren:

  1. Ereignisse treffen ein.
  2. Notification Services erstellt einen Ereignisbatch pro Ereignisklasse und fügt anschließend jeden Ereignisbatch in seine jeweilige Ereignistabelle ein.
  3. Notification Services führt die Ereignisverlaufsregeln für jede Ereignisklasse, die Ereignisverläufe aktualisiert, aus.
  4. Notification Services löst geplante Regeln aus und wertet nur die Abonnements aus, die verarbeitet werden müssen. Geplante Regeln werden für Ereignisverläufe ausgeführt, nicht für Ereignisklassenansichten, in denen nur aktuelle Ereignisbatches enthalten sind.
  5. Die geplanten Regeln fügen die resultierenden Benachrichtigungen in Benachrichtigungstabellen ein. Diese Daten werden zum Erstellen und Verteilen von Benachrichtigungen verwendet.

Da Benachrichtigungen nur zu geplanten Zeiten generiert werden, sind geplante Regeln hilfreich für regelmäßige Informationsaktualisierungen. Tägliche Wettervorhersagen und wöchentliche Portfolioberichte sind beispielsweise Anwendungen, die geplante Regeln verwenden sollten.

Definieren einer geplanten Regel

Eine geplante Regel ist Bestandteil einer Abonnementklasse. Wenn Sie eine Abonnementklasse definieren, müssen Sie mindestens eine (geplante oder ereignisgesteuerte) Regel definieren. Um eine geplante Regel zu definieren, erstellen Sie ein geplantes Regelelement. Sie müssen anschließend für die Aktion einen Namen, eine Aktion, die auszuführen ist, und einen Timeoutwert angeben.

So definieren Sie eine geplante Regel

Benennen einer geplanten Regel

Jede geplante Regel muss einen innerhalb der Anwendung eindeutigen Namen aufweisen. Dieser Name wird verwendet, um die einzelnen Regeln zu Verwaltungszwecken zu identifizieren.

So benennen Sie eine geplante Regel

  • Definieren Sie den Namen der geplanten Regel durch das RuleName Element for ScheduledRule (ADF), wenn Sie eine geplante Regel in XML definieren.
  • Definieren Sie den Namen der geplanten Regel in der SubscriptionScheduledRule-Klasse (NMO), wenn Sie eine geplante Regel programmgesteuert definieren.
  • Definieren Sie den Namen einer geplanten Regel mithilfe der SubscriptionConditionScheduledRule-Klasse (NMO), wenn Sie eine geplante Regel mit einer Bedingungsaktion programmgesteuert definieren.

Definieren einer Aktion oder Bedingungsaktion

Bei einer Aktion handelt es sich um die Abfrage, die von Notification Services bei jeder Auslösung der Regel ausgeführt wird. Abonnementregeln können einfache Aktionen und komplexere Bedingungsaktionen enthalten:

  • Eine Aktion enthält eine Transact-SQL-Abfrage, mit der Benachrichtigungen generiert werden, die auf Übereinstimmungen zwischen Abonnementfeldern und Ereignisfeldern basieren. Wenn Abonnenten Abonnements erstellen, definieren sie Parameter für die vordefinierte Abfrage. Weitere Informationen zum Definieren einfacher Aktionen finden Sie unter Definieren von Aktionen.
  • Eine Bedingungsaktion verfügt ebenfalls über eine Transact-SQL-Abfrage, aber diese Abfrage definiert eine Sicht, in der Abonnenten ihre Abonnements definieren können. Abonnenten wählen die sie interessierenden Felder aus und definieren dann ihre eigenen Bedingungen mithilfe einer vordefinierten Reihe von Operatoren, statt Parameter für eine vordefinierte Abfrage anzugeben. Weitere Informationen zum Definieren von Bedingungsaktionen finden Sie unter Definieren von Bedingungsaktionen.

Angeben eines Timeoutwertes

Das Aktionstimeout gibt den zulässigen Zeitraum an, in dem Anweisungen in der Aktion oder Bedingungsaktion abgeschlossen werden müssen. Werden die Anweisungen nicht vor dem Auftreten des Timeouts abgeschlossen, wird von Notification Services ein Rollback der Transaktion ausgeführt, die geplante Regel als fehlgeschlagen markiert und ein Fehler in das Ereignisprotokoll geschrieben.

So geben Sie einen Timeoutwert an

Siehe auch

Konzepte

Definieren von Ereignisregeln
Definieren von Aktionen
Definieren von Bedingungsaktionen
Definieren von Abonnementregeln
Definieren von Verläufen für eine Ereignisklasse

Hilfe und Informationen

Informationsquellen für SQL Server 2005