Angeben der Ereignisverarbeitungsreihenfolge

Notification Services stellt zwei Optionen bereit, um zu bestimmen, wie Anwendungsregeln verarbeitet werden. Sie können angeben, ob Regeln einmal pro Generatorquantumperiode oder jedes Mal, wenn ein Ereignisbatch eintrifft, ausgelöst werden sollen. Diese beiden Optionen werden als Quantumsequenzierung bzw. Unterquantumsequenzierung bezeichnet. Diese beide Optionen bieten eine Auswahl zwischen strikter Richtigkeit von Daten und Generatorleistung. Standardmäßig verwendet Notification Services die Quantumsequenzierung. Weitere Informationen zu Generatorquanten finden Sie unter Angeben der Generatorquantumdauer.

Quantumsequenzierung

In diesem Modus löst Notification Services Regeln einmal pro Generatorquantum in der folgenden Reihenfolge aus:

  1. Ereignisverlaufsregeln
  2. Ereignisgesteuerte Abonnementregeln
  3. Geplante Abonnementregeln

Wenn mehrere Ereignisbatches während des Quantums eintreffen, verarbeitet Notification Services die Ereignisverlaufsregeln und die ereignisgesteuerten Abonnementregeln für alle diese Ereignisbatches gleichzeitig, so, als ob alle Ereignisse Bestandteil des gleichen Batches wären.

Alle während des Quantums zu verarbeitenden geplanten Abonnements werden am Ende der Quantumperiode gleichzeitig verarbeitet.

Durch Gruppieren aller Ereignisse, die während des Quantums eintrafen, und aller geplanten Abonnements, die während des Quantums fällig waren, kann die Anwendung wesentliche Leistungsgewinne aus der Batchverarbeitung realisieren. Dieser Leistungsvorteil wird jedoch auf Kosten der strikten Richtigkeit der Reihenfolge erzielt. Wenn die Richtigkeit der Reihenfolge keine strikte Anforderung für die Anwendung darstellt, verwenden Sie die Quantumsequenzierung.

Unterquantumsequenzierung

In einigen Fällen müssen Sie sicherstellen, dass alle Ereignisbatches einzeln und in der Reihenfolge ihres Empfangs verarbeitet werden und dass geplante Abonnements nur die Daten verwenden, die eintrafen, bevor die Verarbeitung des geplanten Abonnements fällig war. In diesem Fall müssen Sie die Unterquantumsequenzierung verwenden.

Bei der Unterquantumsequenzierung werden Ereignisse und Abonnements folgendermaßen verarbeitet:

  1. Vor dem Verarbeiten des ersten Ereignisbatches löst Notification Services geplante Regeln für die geplanten Abonnements aus, deren Verarbeitung vor dem Eintreffen des ersten Ereignisbatches fällig war.
  2. Anschließend löst Notification Services Regeln für jedes Ereignisbatch in der Reihenfolge seiner Ankunft aus:
    1. Ereignisverlaufsregeln
    2. Ereignisgesteuerte Abonnementregeln
    3. Geplante Abonnementregeln

Nachdem alle Ereignisbatches verarbeitet wurden, löst Notification Services geplante Abonnementregeln für alle Abonnements aus, deren Verarbeitung nach dem Eintreffen des letzten Ereignisbatches fällig ist.

Veranschaulichung der Quantum- und Unterquantumsequenzierung

Die folgende Abbildung zeigt acht Generatorquanten. Während dieser acht Generatorquanten treffen 12 Ereignisbatches ein, und die Verarbeitung von 12 geplanten Abonnements ist während dieser acht Generatorquanten fällig.

Funktionsweise der Quantumsequenzierung

Beispielzeitachse für Ereignisse und Abonnements

Der Generator verarbeitet die 12 Ereignisbatches und 12 geplanten Abonnements je nach der angegebenen Ereignisverarbeitungsreihenfolge unterschiedlich. Die folgende Tabelle zeigt, wie der Generator die einzelnen Quanten verarbeitet.

Quantum Quantumsequenzierung Unterquantumsequenzierung

Prozessquantum 1

Ereignisbatches E1, E2 und E3 werden zusammen verarbeitet.

Keine zu verarbeitenden geplanten (befristeten) Abonnements vorhanden.

Ereignisbatches E1, E2 und E3 werden sequenziell verarbeitet.

Keine zu verarbeitenden geplanten (befristeten) Abonnements vorhanden.

Prozessquantum 2

Ereignisbatches E4 und E5 werden zusammen verarbeitet.

Geplantes Abonnement T1 wird verarbeitet.

Ereignisbatches E4 und E5 werden sequenziell verarbeitet.

Geplantes Abonnement T1 wird verarbeitet.

Prozessquantum 3

Ereignisbatches E6 und E7 werden zusammen verarbeitet.

Geplantes Abonnement T2 wird verarbeitet.

Ereignisbatch E6 wird verarbeitet.

Geplantes Abonnement T2 wird verarbeitet.

Ereignisbatch E7 wird verarbeitet.

Prozessquantum 4

Ereignisbatch E8 wird verarbeitet.

Geplante Abonnements T3 und T4 werden zusammen verarbeitet.

Ereignisbatch E8 wird verarbeitet.

Geplante Abonnements T3 und T4 werden zusammen verarbeitet.

Prozessquantum 5

Ereignisbatches E9 und E10 werden zusammen verarbeitet.

Geplantes Abonnement T5 wird verarbeitet.

Geplantes Abonnement T5 wird verarbeitet.

Ereignisbatches E9 und E10 werden sequenziell verarbeitet.

Prozessquantum 6

Ereignisbatch E11 wird verarbeitet.

Geplante Abonnements T6 und T7 werden zusammen verarbeitet.

Geplantes Abonnement T6 wird verarbeitet.

Ereignisbatch E11 wird verarbeitet.

Geplantes Abonnement T7 wird verarbeitet.

Prozessquantum 7

Ereignisbatch E12 wird verarbeitet.

Geplante Abonnements T8 und T9 werden zusammen verarbeitet.

Geplante Abonnements T8 und T9 werden zusammen verarbeitet.

Ereignisbatch E12 wird verarbeitet.

Prozessquantum 8

Es sind keine zu verarbeitenden Ereignisbatches vorhanden.

Geplante Abonnements T10, T11 und T12 werden zusammen verarbeitet.

Es sind keine zu verarbeitenden Ereignisbatches vorhanden.

Geplante Abonnements T10, T11 und T12 werden zusammen verarbeitet.

Konfigurieren von Quantum- oder Unterquantumsequenzierung

Zum Konfigurieren der Unterquantumsequenzierung legen Sie die ProcessEventsInOrder-Eigenschaft auf true fest. Die Quantumsequenzierung ist die Standardeinstellung. Daher können Sie entweder die ProcessEventsInOrder-Eigenschaft auf false festlegen oder die Eigenschaft aus der Anwendungsdefinition ausschließen.

So konfigurieren Sie die Quantum- oder Unterquantumsequenzierung

Siehe auch

Konzepte

Angeben von Einstellungen für die Anwendungsausführung
Angeben der Generatorquantumdauer
Definieren von Ereignisverlaufsregeln
Definieren von Abonnementregeln
Definieren von Ereignisregeln
Definieren von geplanten Regeln

Hilfe und Informationen

Informationsquellen für SQL Server 2005