Workflow-Aktivität „Sperre“

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 2 Minuten Lesedauer
  • Die Aktivität Sperre verhindert, dass andere Instanzen dieses Workflows nach dieser Aktivität fortgesetzt werden, bis die Sperre aufgehoben wird.

    Mehrere Instanzen desselben Workflows können gleichzeitig ausgeführt werden. Zum Beispiel, wenn ein Workflow ausgelöst wird, wenn einer bestimmten Tabelle ein Datensatz hinzugefügt wird. Dieser Workflow wird mehrmals ausgelöst, wenn mehrere Datensätze nacheinander hinzugefügt werden, einmal bei jeder Datensatzeinfügung. Sie können die Sperraktivität verwenden, um sicherzustellen, dass diese Instanz des Workflows eine oder mehrere Aktivitäten abgeschlossen hat, bevor eine andere Instanz des Workflows fortgesetzt werden kann.

    Ein Workflow kann eine Sperre mit der Aktivität Entsperren explizit aufheben. Die Sperre kann auch aufgehoben werden, wenn die Max. Dauer erreicht ist.

    Wenn eine Instanz des Workflows die Aktivität Sperre erreicht, wird versucht, eine Sperre mit dem in der Sperraktivität angegebenen Schlüssel abzurufen. Wenn eine andere Instanz die Sperre bereits abgerufen und noch nicht aufgehoben hat, schlägt dieser Sperrversuch fehl. Die Instanz versucht weiterhin, die Sperre abzurufen, bis Max. Versuche erreicht ist.

    Hinweis:

    Es wird empfohlen, vor der Sperraktivität eine Timer-Aktivität von einer Sekunde einzufügen. Hiermit kann der seltene Fall verhindert werden, dass die Sperraktivität eine Workflow-Instanz nicht von einer anderen unterscheiden kann. Dieser Fall kann eintreten, weil die Entität, die die Sperre besitzt, nicht die spezifische Workflow-Instanz, sondern der Code-Ausführungsthread ist, in dem diese Instanz ausgeführt wird. In den meisten Fällen wird jede Workflow-Instanz in einem anderen Thread ausgeführt. Durch Hinzufügen einer Timer-Aktivität wird dies sichergestellt.

    Abbildung : 1. Beispiel für Sperraktivität mit vorangestellter Timer-Aktivität
    Workflow mit Timer-Aktivität vor der Sperraktivität
    Da eine Aktivität vom Typ Sperre die Verarbeitung anderer Workflow-Instanzen nur vorübergehend verhindern kann, fügen Sie keine Aktivitäten hinzu, die dazu führen, dass der Workflow zwischen einem Aktivitätsblock Sperre und Entsperren wartet. Dies kann dazu führen, dass die Aktivität Entsperren die Sperre nicht abrufen kann, um sie aufzuheben, und stattdessen 60 Sekunden bis zum Abschluss benötigt. Zu den eingeschränkten Warteaktivitäten gehören:
    • Freigabeaktivitäten
    • Aufgabenaktivitäten
    • Timer-Aktivitäten
    • Aktivität „Auf Bedingung warten“
    • Aktivität „Auf WF-Ereignis warten“
    • MID-Server-Aktivitäten wie ein PowerShell-Skript

    Ergebnisse

    Tabelle : 1. Ergebnisse der Aktivität „Sperre“
    Ergebnis Beschreibung
    Erfolg Die Aktivität hat erfolgreich eine Sperre abgerufen. Diese Instanz des Workflows kann über diesen Punkt hinaus fortgesetzt werden, andere Instanzen können jedoch erst fortgesetzt werden, wenn die Sperre aufgehoben wird.
    Fehler Nachdem Max. Versuche unternommen wurden, die Sperre abzurufen, konnte die Aktivität die Sperre nicht abrufen.

    Eingabevariablen

    Eingabevariablen bestimmen das anfängliche Verhalten der Aktivität.

    Tabelle : 2. Eingabevariablen der Aktivität „Sperre“
    Feld Beschreibung
    Schlüssel Ein eindeutiger Mutex-Schlüssel. Die Aktivität Entsperren verwendet diesen Schlüssel, um die Sperre aufzuheben.
    Dauer
    Max. Dauer Die maximale Dauer der Sperre. Die Sperre wird nach Erreichen dieser Dauer aufgehoben. Das Aufheben einer Sperre entspricht der Ausführung der Aktivität Entsperren.
    Sperrversuche

    Geben Sie an, wie sich die Aktivität verhält, wenn der Sperrversuch abgelehnt wird. Wenn der letzte Sperrversuch fehlschlägt, wird der Aktivitätsstatus auf „Zeitüberschreitung“ und das Aktivitätsergebnis auf „Fehlgeschlagen“ festgelegt.

    Max. Versuche Geben Sie an, wie oft die Aktivität maximal versuchen kann, die Sperre abzurufen.
    Verzögerung zwischen Versuchen Der Zeitraum, der nach einem fehlgeschlagenen Sperrversuch verstreichen muss, bevor ein weiterer Sperrversuch zulässig ist.

    Status

    Der Aktivitätsstatus teilt der Workflow-Engine mit, wie mit der Aktivität verfahren werden soll.

    Tabelle : 3. Status der Aktivität „Sperre“
    Status Beschreibung
    Warten Die Workflow-Engine wartet darauf, eine Sperre abzurufen.
    Fertig Die Aktivität hat die Sperre erfolgreich abgerufen.
    Zeitüberschreitung Die Aktivität konnte innerhalb der durch die Eingabevariable Max. Versuche angegebenen Anzahl von Versuchen keine Sperre abrufen.