Ein Benutzerexit ist eine vom Benutzer bereitgestellte und definierte Software in C, mit der Daten, die Nachrichtenflüsse passieren, überwacht werden.
Die vom Benutzer bereitgestellten Funktionen können an bestimmten Punkten im Lebenszyklus einer Nachricht im Nachrichtenfluss aufgerufen werden, um Dienstprogrammfunktionen zur Abfrage von Informationen zum jeweiligen Punkt im Fluss und der Inhalte der Nachrichtenassemblierung zu aktivieren. Die Dienstprogrammfunktion kann auch bestimmte Bereiche der Nachrichtenassemblierung ändern.
Weitere Informationen zur Verwendung von Benutzerexits finden Sie im Abschnitt Gründe für die Verwendung eines Benutzerexits.
Die Benutzerexits können aufgerufen werden, wenn eines oder mehrere der folgenden Ereignisse auftreten:
- Ende der Arbeitseinheit (unit-of-work = UOW) oder Transaktion (COMMIT oder ROLLBACK).
- Eine Nachricht wird zwischen zwei Knoten übergeben.
- Eine Nachricht wird erfolgreich in eine Warteschlange gestellt oder für einen Transport in einem Sende-, Antwort- oder Anforderungsknoten gesendet.
- Eine Nachricht wird aus der Warteschlange entfernt oder in einem Empfangs-, Antwort- oder TimeoutNotification-Knoten empfangen.
Im hier dargestellten Basisnachrichtenfluss
können Nachrichten auf drei Ebenen verfolgt werden:
- Transaktionsebene
- Knotenebene
- Ein- oder Ausgabeebene
Auf Transaktionsebene können folgende Ereignisse überwacht werden:
- Nachrichten, die in den Fluss eingelesen werden
- Abschluss der Transaktion
Auf Knotenebene können folgende Ereignisse überwacht werden:
- Nachrichten, die von einem Knoten an den anderen übergeben werden
- Abschluss der Verarbeitung für einen Knoten
Auf Nachrichteneingabe- oder ausgabeebene können folgende Ereignisse überwacht werden:
- Nachrichten, die in den Fluss eingelesen werden
- Nachrichten, auf Basis des Flusses geschrieben werden
Sie können also fünf verschiedene Ereignistypen überwachen, die in der folgenden Reihenfolge auftreten:
- Eine Nachricht wird aus der Warteschlange der Eingabequelle genommen (wird in den Fluss eingelesen).
- Eine Nachricht wird an den Knoten zur Verarbeitung weitergegeben.
- Eine Anforderungsnachricht wird an die Transportmethode des Sendeknotens gesendet, und die transportspezifischen Zieladressendaten werden in der lokalen Umgebung (LocalEnvironment) in "WrittenDestination" geschrieben.
- Die Verarbeitung des Knotens ist abgeschlossen
- Die Transaktion wird beendet.