Transaktionen aufrufen

Invoke-Transaktionen werden verwendet, um einen oder mehrere Clusterbefehle auf einem Zielknoten aufzurufen. Sie ähneln Remoteprozeduraufrufen, die an einen im Cluster definierten Befehl gesendet werden.

Ähnlich wie bei Schreibtransaktionen unterstützen Invoke-Transaktionen zeitgesteuerte und zeitunabhängige Transaktionen. Weitere Informationen zu zeitgesteuerten Transaktionen finden Sie im Abschnitt Zeitgesteuerte und zeitunabhängige Aktionen.

Untimed Invoke Transaction

Abfolge der Vorgänge einer nicht zeitgebundenen Invoke-Transaktion
Abbildung 1: Untimed Invoke-Transaktion

Aktion „Anfrage senden“ aufrufen

Richtung: Initiator -> Ziel

Ähnlich wie bei den Aktionen „Read Request“ und „Write Request“ stellt der Initiator dem Ziel Folgendes zur Verfügung:

  • Aufrufanfragen: Eine Liste von Pfaden zu Clusterbefehlen sowie optionale Argumente für die Befehle, die Befehlsfelder genannt werden.
  • Geplanter Vorgang: Ein Flag, das angibt, ob diese Aktion Teil einer geplanten Transaktion ist.
  • Antwort unterdrücken: Gibt an, ob die Aktion „Antwort aufrufen“ unterdrückt werden soll.
  • Interaktions-ID: Eine Ganzzahl, die zum Abgleichen der Aktion „Aufrufanfrage“ mit der Aktion „Aufrufantwort“ verwendet wird.

Antwortaktion aufrufen

Richtung: Ziel -> Initiator

Nachdem das Ziel die Invoke-Anfrageaktion erhalten hat, wird die Transaktion mit einer Invoke-Antwortaktion abgeschlossen, die Folgendes enthält:

  • Aufrufantworten: Eine Liste mit Befehlsantworten oder Status für jede gesendete Aufrufanfrage.
  • Interaktions-ID: Eine Ganzzahl, die zum Abgleichen der Aktion „Aufruf-Antwort“ mit der Aktion „Aufruf-Anfrage“ verwendet wird.

Einschränkungen für Aufrufe ohne Zeitlimit

Die Invoke Request-Aktion kann ein Gruppen-Broadcast sein. In diesem Fall muss das Flag Suppress Response (Antwort unterdrücken) gesetzt sein. Andernfalls könnte das Netzwerk durch gleichzeitige Antworten von allen Mitgliedern einer Gruppe überlastet werden.

Um dieses Verhalten zu aktivieren, kann der Pfad in der Liste „Aufrufe anfordern“ Gruppen oder alternativ Platzhalter enthalten, aber nur im Feld „Endpunkt“. Wenn die Aktion „Groupcast“ ist, wird diese Transaktion ohne Antwort beendet.

Transaktionen mit zeitgesteuertem Aufruf

Ähnlich wie bei zeitgesteuerten Schreibtransaktionen beginnen auch zeitgesteuerte Aufruftransaktionen mit der zeitgesteuerten Anfrageaktion.

Abfolge der Vorgänge einer zeitgesteuerten Aufruftransaktion
Abbildung 2: Transaktion mit zeitgesteuertem Aufruf

Aktion für zeitgesteuerte Anfrage

Richtung: Initiator -> Ziel

Ein Initiator startet die Transaktion, indem er diese Aktion sendet, die Folgendes enthält:

  • Zeitlimit: Gibt an, wie lange diese Transaktion geöffnet bleiben darf (in Millisekunden). Während dieses Zeitraums gilt die nächste vom Initiator gesendete Aktion als gültig.

Sobald die zeitgesteuerte Anfrageaktion eingegangen ist, muss das Ziel die zeitgesteuerte Anfrageaktion mit einer Statusantwortaktion bestätigen. Sobald der Initiator eine Statusantwortaktion ohne Fehler erhält, sendet er eine Invoke-Anfrageaktion.

Aktion „Anfrage senden“ aufrufen

Entspricht der zuvor beschriebenen Invoke Request Action.

Antwortaktion aufrufen

Entspricht der zuvor beschriebenen Aktion „Aufruf der Antwort“.

Einschränkungen für zeitgesteuerte Aufrufe

Alle Befehle zum Aufrufen können auf eine zeitgesteuerte Interaktion angewendet werden. Die Aktion „Getaktete Anfrage“, die Aktion „Aufrufanfrage“ und die Aktion „Aufrufantwort“ sind nur für Unicast verfügbar und können daher nicht als Gruppenweitergabe für getaktete Invoke-Transaktionen verwendet werden.

Die Aktion „Anfrage aufrufen“ unterstützt die Verwendung von Pfaden mit Gruppen sowie Platzhaltern. Die Aktion „Antwort aufrufen“ unterstützt jedoch keine Platzhalter.