Das Konzeptthema Nachrichtenflussknoten lesen
WebSphere Message Broker enthält viele Nachrichtenverarbeitungsknoten, die Sie in Ihren Nachrichtenflüssen verwenden können. Außerdem wird eine Schnittstelle zur Verfügung gestellt, mit der Sie Ihre eigenen Knoten (benutzerdefinierte Knoten) definieren können.
Für welchen Knoten Sie sich entscheiden, hängt davon ab, welche Verarbeitung Sie auf Ihren Nachrichten ausführen möchten. In einigen Kategorien könnten Sie integrierte Knoten in Betracht ziehen. Diese werden in der Workbench angezeigt, aufgeteilt in die entsprechenden Kategorien (wobei die Gruppierung keinen Einfluss auf ihre Ausführung hat). Sie können auch benutzerdefinierte Knoten auf diese Weise kategorisieren. Es gibt folgende Kategorien:
Die Verwendung von Nachrichtenflüssen, die MQeEmpfangsknoten enthalten, wird in
WebSphere
Message Broker Version
6.0 nicht mehr unterstützt.
Überarbeiten Sie Ihre Nachrichtenflüsse, um die MQe-Knoten zu entfernen und sie durch MQ-Knoten zu ersetzen, die für Ihre Spezifikationen konfiguriert und für die Konfiguration Ihres MQe-Gateways koordiniert wurden. Nähere Informationen finden Sie unter Nachrichtenfluss mit WebSphere MQ Everyplace-Knoten migrieren.
Eine Instanz des Empfangsknotens repräsentiert ein Eingangsterminal. Wenn Sie beispielsweise eine Instanz des Empfangsknotens eingefügt haben, zeigt das Symbol des untergeordneten Flusses ein Eingangsterminal an, das Sie mit anderen Knoten im Hauptfluss verbinden können. Die Vorgehensweise ist identisch mit der Herstellung einer Verbindung zu jedem anderen Knoten.
Es können nur Nachrichtenflüsse implementiert werden, die über mindestens einen Empfangsknoten verfügen. Wenn Ihr Nachrichtenfluss keinen Empfangsknoten enthält, können Sie ihn nicht zur Brokerarchivierungsdatei (BAR-Datei) hinzufügen. Der Empfangsknoten kann sich im Hauptfluss oder in einem Nachrichtenfluss befinden, der in den Hauptfluss eingebettet ist.
Sie können mehrere Empfangsknoten in einem Nachrichtfluss verwenden. Der Abschnitt Mehrere Empfangsknoten verwenden enthält weitere Informationen hierzu.
Die Verwendung von Nachrichtenflüssen, die MQeSendeknoten enthalten, wird in
WebSphere
Message Broker Version
6.0 nicht mehr unterstützt.
Überarbeiten Sie Ihre Nachrichtenflüsse, um die MQe-Knoten zu entfernen und sie durch MQ-Knoten zu ersetzen, die für Ihre Spezifikationen konfiguriert und für die Konfiguration Ihres MQe-Gateways koordiniert wurden. Nähere Informationen finden Sie unter Nachrichtenfluss mit WebSphere MQ Everyplace-Knoten migrieren.
Eine Instanz des Sendeknotens repräsentiert ein Ausgangsterminal. Wenn Sie beispielsweise zwei Instanzen des Sendeknotens eingefügt haben, zeigt das Symbol des untergeordneten Flusses zwei Ausgangsterminals an, die Sie mit anderen Knoten im Hauptfluss verbinden können. Die Vorgehensweise ist identisch mit der Herstellung einer Verbindung zu jedem anderen Knoten.
Die meisten Unternehmen arbeiten mit Anwendungen, die über Jahre auf verschiedenen Systemen mit verschiedenen Programmiersprachen und verschiedenen Datenübertragungsmethoden entwickelt wurden. In WebSphere Message Broker ist es nicht mehr notwendig, dass die Anwendungen diese Unterschiede verstehen, da es die Möglichkeit bietet, Nachrichtenflüsse von einem Format in ein anderes umzusetzen.
Beispiel: Die Namen von Personen sind in vielen Formaten in den verschiedenen Anwendungen gespeichert. Der Familienname kann an erster oder letzter Stelle stehen, Mittelinitialen enthalten oder nicht und in Groß- oder Kleinbuchstaben geschrieben sein: dies sind nur einige der möglichen Variationen. Da Sie Ihren Nachrichtenfluss so konfigurieren können, dass er die Anforderungen der einzelnen Anwendungen kennt, kann jede Nachricht in das korrekte Format umgewandelt werden, ohne dass die sendende oder empfangende Anwendung geändert werden muss.
Sie können auf verschiedene Arten mit dem Inhalt der Nachricht arbeiten, um sie zu aktualisieren. Ihre Entscheidung kann davon abhängen, ob der Nachrichtenfluss vordefinierte (modellierte) Nachrichten und/oder selbstdefinierende Nachrichten (z. B. XML) verarbeiten muss.
Ein Nachrichtenfluss kann eine Nachricht völlig neu erstellen, sie von einem Format in ein anderes konvertieren (Format bedeutet an dieser Stelle die Anordnung der Felder, Byteanordnung, Sprache usw.), Inhalt aus der Nachricht entfernen oder bestimmte Daten in sie einfügen. Ein Knoten kann beispielsweise mit einer Datenbank interagieren, um zusätzliche Informationen abzurufen oder um eine (vollständige oder teilweise) Kopie der Nachricht in der Datenbank zur Offline-Verarbeitung zu speichern.
Die folgenden Beispiele zeigen, wie wichtig die Nachrichtenumsetzung sein kann:
Sie können auch Nachrichtenflüsse erstellen, die miteinander über diese Knoten interagieren. Selbst wenn sich die Standardoperation eines Nachrichtenflusses nicht auf die Operation eines anderen Nachrichtenflusses auswirkt, können Sie dies erzwingen, indem Sie Ihre Nachrichtenflüsse so konfigurieren, dass Informationen in einer externen Quelle wie beispielsweise einer Datenbank gespeichert und abgerufen werden.
Verwenden Sie den ESQL-Editor zur Erstellung eines ESQL-Moduls, das sich speziell auf diesen Knoten bezieht und Anweisungen enthält, über die die Aktionen definiert werden, die für die Nachricht oder Datenbank ausgeführt werden sollen. Der ESQL-Code, der von Ihnen zur Verwendung in einem Rechenknoten entwickelt wurde, sollte nicht in einem anderen Knotentyp verwendet werden.
Sie können steuern, wie dieser Knoten auf die Datenbank zugreift, indem Sie Informationen zum Benutzer und Kennwort für die Datenquelle angeben, die in der Knoteneigenschaft angegeben sind. Verwenden Sie den Befehl mqsisetdbparms, um diese Werte zu initialisieren und zu verwalten.
Sie können steuern, wie dieser Knoten auf die Datenbank zugreift, indem Sie Informationen zum Benutzer und Kennwort für die Datenquelle angeben, die in der Knoteneigenschaft angegeben sind. Diese Werte werden mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Wenn Ihre Anforderungen an die Nachrichtenbearbeitung komplex sind, vervollständigen Sie diese innerhalb eines einzelnen Rechenknotens. Mit weniger, dafür komplexeren Rechenknoten werden bessere Leistungen erzielt als mit vielen, dafür etwas einfacheren Knoten. Der Grund hierfür ist, dass der Broker die Nachricht bei der Eingabe für jeden einzelnen Rechenknoten syntaktisch analysiert.
Sie können steuern, wie dieser Knoten auf die Datenbank zugreift, indem Sie Informationen zum Benutzer und Kennwort für die Datenquelle angeben, die in der Knoteneigenschaft angegeben sind. Verwenden Sie den Befehl mqsisetdbparms, um diese Werte zu initialisieren und zu verwalten.
Mit Hilfe eines Zuordnungseditors können Sie Zuordnungen entwickeln, um einfache Bearbeitungen an vordefinierten Nachrichten im Zuordnungsknoten auszuführen. Die Zuordnungen, die von Ihnen zur Verwendung in einem Zuordnungsknoten entwickelt wurden, sollten nicht in einem anderen Knotentyp verwendet werden.
Mit Hilfe eines Zuordnungseditors können Sie Zuordnungen entwickeln, um einfache Bearbeitungen an vordefinierten Nachrichten im Extraktionsknoten auszuführen. Die Zuordnungen, die von Ihnen zur Verwendung in einem Extraktionsknoten entwickelt wurden, sollten nicht in einem anderen Knotentyp verwendet werden.
Dieser Knoten bietet eine äußerst flexible Schnittstelle mit vielen Funktionen. Er stellt auch Eigenschaften bereit, mit denen Sie steuern können, wie die Interaktion in Transaktionen stattfindet.
Sie können steuern, wie dieser Knoten auf die Datenbank zugreift, indem Sie Informationen zum Benutzer und Kennwort für die Datenquelle angeben, die in der Knoteneigenschaft angegeben sind. Verwenden Sie den Befehl mqsisetdbparms, um diese Werte zu initialisieren und zu verwalten.
Über diesen Knoten kann nur eine Datenbank aktualisiert werden; die Aktualisierung von Nachrichteninhalten ist nicht möglich. Falls Sie Nachrichteninhalte aktualisieren möchten, verwenden Sie den Rechen- oder Zuordnungsknoten.
Sie können steuern, wie dieser Knoten auf die Datenbank zugreift, indem Sie Informationen zum Benutzer und Kennwort für die Datenquelle angeben, die in der Knoteneigenschaft angegeben sind. Verwenden Sie den Befehl mqsisetdbparms, um diese Werte zu initialisieren und zu verwalten.
Über diese Knoten können nur Datenbanken aktualisiert werden: die Aktualisierung von Nachrichteninhalten ist nicht möglich. Falls Sie Nachrichteninhalte aktualisieren möchten, verwenden Sie den Rechen- oder Zuordnungsknoten.
Sie können steuern, wie dieser Knoten auf die Datenbank zugreift, indem Sie Informationen zum Benutzer und Kennwort für die Datenquelle angeben, die in der Knoteneigenschaft angegeben sind. Verwenden Sie den Befehl mqsisetdbparms, um diese Werte zu initialisieren und zu verwalten.
Über diesen Knoten kann nur eine Datenbank aktualisiert werden; die Aktualisierung von Nachrichteninhalten ist nicht möglich. Falls Sie Nachrichteninhalte aktualisieren möchten, verwenden Sie den Rechen- oder Zuordnungsknoten.
Verwenden Sie den XMLUmsetzungsknoten, wenn Sie eine XML-Eingabenachricht mit Hilfe von XMLT-Style-Sheets in ein anderes Format umwandeln möchten. Es ist dabei zwingend erforderlich, dass die Daten in einer XML-Nachricht syntaktisch analysiert werden können. Das Ergebnis der Konvertierung wird als BLOB-Nachricht ausgegeben. Im Style-Sheet können die Daten mit Hilfe der darin definierten Regeln sortiert werden. Wählen Sie dazu Datenelemente aus, die auf Grundlage einiger Kriterien ein- oder ausgeschlossen werden, und wandeln Sie die Daten in ein anderes Datenformat um.
Als zu Grunde liegende Umsetzungssteuerkomponente wird die Xalan-Java-Umsetzungssteuerkomponente (Apache Xalan-java XSLT-Prozessor) verwendet. Der Abschnitt W3C XSL-Transformationen enthält detaillierte Informationen zu XMLT.
Um die Verwaltung von Style-Sheets und XML-Dateien zu erleichtern, können Sie diese in Brokerausführungsgruppen implementieren.
Mit dem JMSMQUmsetzungsknoten können Nachrichten an herkömmliche Nachrichtenflüsse gesendet werden. Darüber hinaus ermöglicht er die Zusammenarbeit mit WebSphere MQ JMS undWebSphere Message Broker Publish/Subscribe.
Mit dem MQJMSUmsetzungsknoten können Nachrichten an herkömmliche Nachrichtenflüsse gesendet werden. Darüber hinaus ermöglicht er die Zusammenarbeit mit WebSphere MQ JMS undWebSphere Message Broker Publish/Subscribe.
Mit Hilfe des Knotens 'MQ_Optimierter_Fluss' können Sie einen Publish/Subscribe Nachrichtenfluss ersetzen, der aus einem MQEmpfangsknoten besteht, der mit einem Veröffentlichungsknoten verbunden ist und JMS über den WebSphere MQ-Transport nutzt. Der Knoten 'MQ_Optimierter_Fluss' kann aufz/OS-Systemen nicht verwendet werden.
Mit dem Knoten 'MQ_Optimierter_Fluss' können Sie die Leistung steigern. Dies gilt insbesondere, wenn ein einzelner Publisher eine permanente Veröffentlichung für einen einzelnen Subskribenten erstellt.
Sie können steuern, wie dieser Knoten auf die Datenbank zugreift, indem Sie Informationen zum Benutzer und Kennwort für die Datenquelle angeben, die in der Knoteneigenschaft angegeben sind. Verwenden Sie den Befehl mqsisetdbparms, um diese Werte zu initialisieren und zu verwalten.
In der folgenden Tabelle wird zusammengefasst, welche Punkte in diesen Knoten aktualisiert werden können.
Knoten | Datenbank aktualisieren? | Nachricht aktualisieren? | Lokale Umgebung aktualisieren? | Nachrichtengruppe erforderlich? |
---|---|---|---|---|
Compute | Ja | Ja | Ja | Nein |
Database | Ja | Nein | Ja | Nein |
DataDelete | Ja | Nein | Ja | Ja |
DataInsert | Ja | Nein | Ja | Ja |
DataUpdate | Ja | Nein | Ja | Ja |
Extract | Ja | Ja | Ja | Ja |
Mapping | Ja | Ja | Ja | Ja |
Warehouse | Ja | Nein | Ja | Ja |
Sie können Knoten nutzen, die die Reihenfolge und die Datenflusskontrolle im Nachrichtenfluss auf verschiedene Weise bestimmen, um so zu entscheiden, wie Nachrichten vom Datenfluss verarbeitet werden. Sie können auch Knoten (Zeitlimitsteuerungsknoten und Zeitlimitbenachrichtigungsknoten) verwenden, durch die der Zeitpunkt und die Häufigkeit des Auftretens von Ereignissen im Nachrichtenfluss bestimmt werden. Das Routing findet unabhängig von der Nachrichtenumsetzung statt, obwohl über die von einer Nachricht genommene Route möglicherweise genau bestimmt wird, welche Umsetzung für sie erfolgt.
Beispiel: Eine Anwendung für die Überweisung von Geldbeträgen sendet immer Nachrichten an eine andere Anwendung. Sie können festlegen, dass jede Nachricht mit einem Überweisungswert von über €10.000 auch an eine zweite Anwendung gesendet werden muss, damit alle geschäftskritischen Transaktionen aufgezeichnet werden können.
In einem anderen Beispiel bietet ein nationaler Automobilclub seinen Mitgliedern einen Vorzugsservice für Aufträge an, die einen bestimmten Schwellenwert überschreiten. Die meisten Aufträge werden über die üblichen Kanäle geleitet, aber falls die Mitgliedsnummer und der Auftragswert bestimmten Kriterien entspricht, gelten für den Auftrag Sonderkonditionen.
Sie können auch eine dynamischere Routing-Option einrichten, indem Sie bei der Nachrichtenverarbeitung zusätzliche Route-Informationen in die Nachricht einbauen. Optionale Regelgruppen werden konfiguriert, um Nachrichten gemäß von Werten (Zieladressen) zu empfangen, die in der Nachricht festgelegt werden. Solche Regeln (beispielsweise dass eine Nachricht von einer oder mehreren optionalen Regelgruppen verarbeitet wird) können in einer Reihenfolge eingerichtet werden, die vom hinzugefügten Nachrichteninhalt bestimmt wird.
Verwenden Sie die folgenden Knoten, um Entscheidungen hinsichtlich der Route zu treffen, der eine Nachricht im Nachrichtenfluss folgt:
Der Auswertungsknoten ersetzt den Prüfknoten, der in WebSphere Message Broker Version 6.0 sowie in nachfolgenden Releases nicht weiter unterstützt wird. Der Auswertungsknoten funktioniert wie der Prüfknoten, besitzt aber zusätzliche Auswertungseigenschaften, die eine Auswertung des Nachrichteninhalts durch Parser ermöglicht, die diese Funktion unterstützen.
Der Knoten verfügt über folgende Terminals: TRUE, FALSE, UNBEKANNT und FEHLER. Die Nachricht wird an das TRUE-Terminal weitergegeben, wenn der Test erfolgreich verläuft; sie wird an das FALSE-Terminal weitergegeben, wenn der Test fehlschlägt. Wenn die Anweisung nicht aufgelöst werden kann (wenn beispielsweise der Wert eines Feldes getestet wird, das in der Eingabenachricht nicht angezeigt wird), wird die Nachricht an das UNBEKANNT-Terminal weitergegeben. Wenn ein Fehler festgestellt wird, wird die Nachricht an das FEHLER-Terminal weitergegeben.
Der Test in der ESQL-Anweisung kann vom Nachrichteninhalt, dem Datenbankinhalt oder einer Kombination aus beiden abhängen.
Wenn Sie auf eine Datenbank verweisen, können Sie steuern, wie dieser Knoten auf die Datenbank zugreift, indem Sie Informationen zum Benutzer und Kennwort für jede Datenquelle angeben, die in der Registry auf dem Brokersystem definiert ist. Auf verteilten Systemen können diese Werte mit dem Befehl mqsisetdbparms initialisiert und verwaltet werden.
Verwenden Sie bei z/OS-Systemen die ID für die vom Broker gestartete Task für den Zugriff auf die Datenbank.
Zur Bereitstellung dieser Funktion ist dieser Knoten dem Rechenknoten vorzuziehen; der Rechenknoten kann zwar auch für die Steuerung der Nachrichtenauswahl und des Routings verwendet werden, der Filterknoten erzielt jedoch bessere Leistungen.
Ein Stapeljob soll jeden Tag zu einem bestimmten Zeitpunkt ausgeführt werden, oder Informationen sollen in festgelegten Abständen verarbeitet und veröffentlicht werden (z. B. Wechselkurse von Währungen werden berechnet und an Banken gesendet), oder angegebene Wiederherstellungsaktionen sollen ausgeführt werden, wenn bestimmte Transaktionen nicht innerhalb einer definierten Zeitspanne beendet werden. Für diese Fälle stehen Ihnen zwei Zeitlimitknoten (Zeitlimitsteuerungsknoten und Zeitlimitbenachrichtigungsknoten) zur Verfügung.
Jedem Zeitlimitbenachrichtigungsknoten können mehrere Zeitlimitsteuerungsknoten zugeordnet werden.
Sie können zusammengehörige Anforderungen und Antworten mit Hilfe der Knoten zur Aggregationssteuerung (AggregateControl), für Aggregationsantworten (AggregateReply) und Aggregationsanforderungen (AggregateRequest) sortieren. Verwenden Sie diese Knoten, um mehrere Anforderungen als Reaktion auf eine Eingabenachricht zu generieren, und um die Antworten zu steuern und zu koordinieren, die als Antwort auf diese Anforderungen empfangen werden. Darüber hinaus können Sie die Informationen kombinieren, die von den Antworten für die Fortsetzung der Verarbeitung bereitgestellt werden.
Sie können Knoten verwenden, die sich auf die Fehlerbehandlung und das Berichtswesen auswirken:
Mit Ausnahme der Rechen-, Extraktions- und Zuordnungsknoten ist die Eingabenachricht, die von einem Knoten empfangen wird, mit der Ausgabenachricht identisch, die vom Knoten weitergesendet wird.