Ihre Nachrichtenflüsse können von Benutzerexits profitieren.
Im folgenden Diagramm wird die Funktionsweise eines Benutzerexits veranschaulicht. Die nummerierten Ereignisse werden unter dem Diagramm beschrieben.
Der MQInput-Knoten wird als Beispiel verwendet, jedoch verfügen alle Empfangsknoten einschließlich benutzerdefinierter Knoten über diese Funktion. Auch die Compute- und MQOutput-Knoten können durch funktional entsprechende Knoten ersetzt werden.

- Die Nachricht wird aus der Warteschlange der Eingabequelle genommen (wird in
den Fluss eingelesen).
Jedoch besteht bezüglich der Art und Weise, wie Benutzerexits aufgerufen
werden, ein geringfügiger Unterschied zwischen integrierten Knoten und benutzerdefinierten Knoten. Bei integrierten Knoten wird der Benutzerexit aufgerufen, sobald die Daten aus der externen Quelle
gelesen wurden. Bei benutzerdefinierten Knoten wird der Benutzerexit unmittelbar vor der Weitergabe der Nachricht durch den Knoten aufgerufen.
- Die Nachricht wird an den Knoten zur Verarbeitung weitergegeben.
- Verarbeitung des Knotens wird abgeschlossen.
- Der Benutzerexit wird nach Abschluss der Transaktion aufgerufen, d. h., die
Verarbeitung des Benutzerexits ist nicht Teil der Transaktion. Der Benutzerexit wird auch für den
Fall aufgerufen, dass keine transaktionsorientierte Verarbeitung vom Nachrichtenfluss abgeschlossen
wurde.
Wenn der Wert für die Nachrichtenflusseigenschaft
Festschreibungszähler größer als 1 ist, besteht ein
n:1-Verhältnis zwischen Ereignis 1 und Ereignis 4. Dieses Verhältnis gilt auch für Szenarios, die speziell für diesen bestimmten Empfangsknoten auftreten, z. B. wenn für einen MQInput-Knoten die Eigenschaft Festschreibung nach Nachrichtengruppe ausgewählt ist.
Mithilfe eines Benutzerexits kann eine beliebige Anzahl dieser Ereignisse überwacht werden. Für jedes dieser Ereignisse stehen dem Benutzerexit folgende Daten zur Verfügung. Falls nicht anders angegeben, besteht lediglich Lesezugriff.
- Die Nachricht wird aus der Warteschlange entfernt:
- Bitstrom
- Empfangsknoten
- Umgebungsbaumstruktur (Lese- und Schreibzugriff)
- Die Nachricht wird an den Knoten weitergegeben.
- Nachrichtenbaumstruktur (Message)
- Baumstruktur für lokale Umgebung (Lese- und Schreibzugriff)
- Ausnahmeliste
- Umgebungsbaumstruktur (Lese- und Schreibzugriff)
- Ausgangsknoten
- Zielknoten
- Verarbeitung des Knotens wird abgeschlossen:
- Nachrichtenbaumstruktur (Message)
- Baumstruktur für lokale Umgebung (Lese- und Schreibzugriff)
- Ausnahmeliste
- Umgebungsbaumstruktur (Lese- und Schreibzugriff)
- Knoten
- Vorgelagerter Knoten
- Ausnahme (falls vorhanden)
- Das Ende der Transaktion:
- Empfangsknoten
- Ausnahme (falls vorhanden)
- Umgebungsbaumstruktur (Lese- und Schreibzugriff)
Sie können mehrere Benutzerexits registrieren, die dann in einer definierten Reihenfolge aufgerufen werden (weitere Informationen finden Sie unter Befehl mqsichangeflowuserexits).
Wenn ein Benutzerexit Änderungen an einer Nachrichtenassemblierung (Nachricht und Umgebung) vornimmt, sind diese Änderungen für die folgenden Benutzerexits sichtbar.
Beim Aufruf eines Benutzerexits können folgende Informationen abgefragt werden:
- Nachrichtenflussdaten:
- Nachrichtenflussname
- Brokername
- Warteschlangenmanager des Brokers
- Name der Ausführungsgruppe
- Eigenschaft 'Festschreibungszähler' des Nachrichtenflusses
- Eigenschaft 'Festschreibungsintervall' des Nachrichtenflusses
- Eigenschaft 'Koordinierte Transaktion' des Nachrichtenflusses
- Knotendaten:
- Knotenname
- Knotentyp
- Terminalname
- Knoteneigenschaften
Der Benutzerexit kann auch folgende Tasks ausführen:
- In der Nachrichtenassemblierung navigieren und lesen (Message,LocalEnvironment,ExceptionList)
- In der Umgebungsstruktur navigieren sowie lesen und schreiben.
Die Benutzerexits können auf dynamischer Basis registriert werden, d. h., die Konfiguration muss nicht erneut implementiert werden.