Bestimmte Ereignisthemen unterstützen die Blockierung von Ereignissen. Das Verhalten eines Erweiterbarkeitsabonnements hängt davon ab, ob diese Ereignistypen vom Thema unterstützt werden und wie das Abonnement konfiguriert ist.
Cloud Assembly-Erweiterbarkeitsabonnements können zwei grundlegende Typen von Ereignisthemen verwenden: nicht blockierende und blockierende Ereignisthemen. Der Typ des Ereignisthemas definiert das Verhalten des Erweiterbarkeitsabonnements.
Nicht blockierende Ereignisthemen
Mit nicht blockierenden Ereignisthemen können nur nicht blockierende Abonnements erstellt werden. Nicht blockierende Abonnements werden asynchron ausgelöst, und Sie können sich nicht auf die Reihenfolge verlassen, in der die Abonnements ausgelöst werden.
Blockieren von Ereignisthemen
Bestimmte Ereignisthemen unterstützen die Blockierung. Wenn ein Abonnement als „Blockierend“ gekennzeichnet ist, werden alle Nachrichten, die die festgelegten Bedingungen erfüllen, von keinem anderen Abonnement mit übereinstimmenden Bedingungen empfangen, bis das ausführbare Element des blockierenden Abonnements ausgeführt wird.
Blockierende Abonnements werden in der Reihenfolge der Priorität ausgeführt. Der höchste Prioritätswert ist 0 (null). Wenn Sie über mehr als ein blockierendes Abonnement für das gleiche Ereignisthema mit der gleichen Prioritätsstufe verfügen, werden die Abonnements in umgekehrter alphabetischer Reihenfolge basierend auf dem Namen des Abonnements ausgeführt. Nachdem alle blockierenden Abonnements verarbeitet wurden, wird die Nachricht gleichzeitig an alle nicht blockierenden Abonnements gesendet. Da die blockierenden Abonnements synchron ausgeführt werden, umfasst die geänderte Ereignisnutzlast das aktualisierte Ereignis, wenn die nachfolgenden Abonnements benachrichtigt werden.
Sie können blockierende Ereignisthemen verwenden, um mehrere Abonnements zu verwalten, die voneinander abhängig sind.
Sie verfügen beispielsweise über zwei Bereitstellungs-Workflow-Abonnements, bei denen das zweite Abonnement von den Ergebnissen des ersten abhängt. Beim ersten Abonnement wird während der Bereitstellung eine Eigenschaft geändert und das zweite zeichnet die neue Eigenschaft, z. B. einen Maschinennamen, in einem Dateisystem auf. Das Abonnement „ChangeProperty“ hat die Priorität 0 und „RecordProperty“ hat die Priorität 1, da das zweite Abonnement die Ergebnisse des ersten Abonnements verwendet. Bei der Bereitstellung einer Maschine wird die Ausführung des Abonnements „ChangeProperty“ gestartet. Da die Bedingungen des Abonnements „RecordProperty“ auf einer Bedingung nach der Bereitstellung basieren, löst ein Ereignis das Abonnement „RecordProperty“ aus. Da der Workflow „ChangeProperty“ aber ein blockierender Workflow ist, wird das Ereignis erst dann empfangen, wenn der Workflow abgeschlossen ist. Nachdem der Maschinenname geändert und das erste Workflow-Abonnement abgeschlossen wurde, wird das zweite Workflow-Abonnement ausgeführt und der Maschinenname im Dateisystem aufgezeichnet.
Ausführbares Wiederherstellungselement
Zum Blockieren von Ereignisthemen können Sie dem Abonnement ein ausführbares Wiederherstellungselement hinzufügen. Das ausführbare Wiederherstellungselement in einem Abonnement wird ausgeführt, wenn das primäre ausführbare Element ausfällt. Sie können beispielsweise ein Workflow-Abonnement erstellen, bei dem das primäre ausführbare Element ein Workflow ist, der Datensätze in einem CMDB-System, wie z. B. ServiceNow, erstellt. Selbst wenn das Workflow-Abonnement fehlschlägt, werden möglicherweise einige Datensätze im CMDB-System erstellt. In diesem Szenario kann ein ausführbares Wiederherstellungselement verwendet werden, um die vom fehlgeschlagenen ausführbaren Element im CMDB-System hinterlassenen Datensätze zu bereinigen.
Für Anwendungsfälle, die mehrere Abonnements enthalten, die voneinander abhängig sind, können Sie dem ausführbaren Wiederherstellungselement eine ebs.recover.continuation-Eigenschaft hinzufügen. Mit dieser Eigenschaft können Sie steuern, ob der Erweiterbarkeitsdienst mit dem nächsten Abonnement in Ihrer Kette fortgesetzt werden muss, falls das aktuelle Abonnement fehlschlägt.