WebSphere Nachrichtenbroker enthält viele Nachrichtenverarbeitungsknoten, die Sie in Ihren Nachrichtenflüssen nutzen können.
Lesen Sie den Konzeptabschnitt über Nachrichtenflussknoten.
WebSphere Message Broker stellt außerdem eine Schnittstelle zur Verfügung, mit der Sie eigene Knoten (benutzerdefinierte Knoten) definieren können.
Für welche Knoten Sie sich entscheiden, hängt davon ab, welche Verarbeitung für Ihre Nachrichten ausgeführt werden soll.
Die Verwendung von Nachrichtenflüssen, die MQeInput-Knoten 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 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.
Der Real-timeInput ist ein Empfangsknoten, und der Knoten 'Real-timeOptimizedFlow' ist ein vollständiger Nachrichtenfluss, der einen hochleistungsfähigen Publish/Subscribe-Nachrichtenfluss ermöglicht.
Ein Eingangsterminal stellt eine Instanz eines Input-Knotens dar. Wenn Sie beispielsweise eine Instanz eines Input-Knotens eingeschlossen haben, zeigt das Symbol für den untergeordneten Nachrichtenfluss ein Eingangsterminal an, das Sie genauso wie jeden anderen Knoten mit anderen Knoten im Hauptnachrichtenfluss verbinden können.
Damit ein Nachrichtenfluss implementiert werden kann, muss er mindestens einen Empfangsknoten aufweisen. Wenn Ihr Nachrichtenfluss keinen Empfangsknoten enthält, können Sie ihn nicht der Brokerarchivdatei hinzufügen. Der Empfangsknoten kann sich im Hauptfluss oder in einem im Hauptfluss eingebetteten Nachrichtenfluss befinden.
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 MQeOutput-Knoten 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 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.
Ein Ausgangsterminal stellt eine Instanz eines Output-Knotens dar. Wenn Sie beispielsweise zwei Instanzen eines Output-Knotens eingeschlossen haben, zeigt das Symbol für den untergeordneten Nachrichtenfluss zwei Ausgangsterminals an, die Sie genauso wie jeden anderen Knoten mit anderen Knoten im Hauptnachrichtenfluss verbinden können.
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 müssen die Anwendungen diese Unterschiede nicht mehr kennen, da es die Möglichkeit bietet, Nachrichtenflüsse zu konfigurieren, die Nachrichten von einem Format in ein anderes umsetzen.
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 umgesetzt 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 (vorerstellte) 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.
Sie können auch Nachrichtenflüsse erstellen, die miteinander mit diesen Knoten interagieren. Obwohl der Standardbetrieb eines Nachrichtenflusses nicht den Betrieb eines anderen beeinflusst, können Sie dies festlegen, wenn Sie die Nachrichtenflüsse so konfigurieren, dass sie Informationen in einer externen Quelle, z. B. einer Datenbank, speichern und abrufen.
Verwenden Sie den ESQL-Editor, um ein für diesen Knoten spezifisches ESQL-Modul zu erstellen, das die Anweisungen enthält, die die Aktionen definieren, die für diese Nachricht oder Datenbank ausgeführt werden sollen. Der ESQL-Code, der von Ihnen zur Verwendung in einem Compute-Knoten 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. Diese Werte werden mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Auch komplexe Anforderungen an Ihre Nachrichtenbearbeitung, können mit einem einzelnen Compute-Knoten erfüllt werden. Weniger, aber komplexere Compute-Knoten haben eine bessere Leistung als viele einfachere Knoten, da der Broker die Nachricht beim Eingang auf jedem Compute-Knoten 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. Diese Werte werden mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Mithilfe des Zuordnungseditors können Sie Zuordnungen entwickeln, um einfache Bearbeitungen an vordefinierten Nachrichten auszuführen. Die Zuordnungen, die von Ihnen zur Verwendung in einem Mapping-Knoten entwickelt wurden, sollten nicht in einem anderen Knotentyp verwendet werden.
Mit dem Extract-Knoten können Sie eine neue Ausgabenachricht aus bestimmten Elementen der Eingabenachricht erstellen. Sie können bestimmte Nachrichtenbereiche extrahieren und optional ihren Inhalt ändern, um eine neue Ausgabenachricht zu erstellen, die teilweise eine Kopie der vom Knoten empfangenen Nachricht ist. Vom Extract-Knoten werden nur vordefinierte Nachrichten verarbeitet.
Mithilfe des Zuordnungseditors können Sie Zuordnungen entwickeln, um einfache Bearbeitungen an vordefinierten Nachrichten im Extract-Knoten auszuführen. Die Zuordnungen, die von Ihnen zur Verwendung in einem Extract-Knoten 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 den Knoteneigenschaften angegeben sind. Diese Werte werden mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Über diesen Knoten können Sie nur Datenbanken aktualisieren, nicht aber Nachrichteninhalt. Falls Sie Nachrichteninhalte aktualisieren möchten, verwenden Sie den Compute- oder Mapping-Knoten.
Von den DataDelete-, DataInsert- und DataUpdate-Knoten werden nur vordefinierte Nachrichten verarbeitet. Mithilfe eines Zuordnungseditors können Sie Zuordnungen für die Ausführung dieser Funktionen entwickeln. Die Zuordnungen, die von Ihnen zur Verwendung in diesen Knoten entwickelt wurden, sollten nicht in einem anderen Knotentyp verwendet werden. Mit diesen Knoten können Sie die transaktionsorientierten Merkmale der vorgenommenen Aktualisierungen steuern.
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.
Über diese Knoten können Sie nur Datenbanken aktualisieren, nicht aber Nachrichteninhalt. Falls Sie Nachrichteninhalte aktualisieren möchten, verwenden Sie den Compute- oder Mapping-Knoten.
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.
Über diesen Knoten können Sie nur Datenbanken aktualisieren, nicht aber Nachrichteninhalt. Falls Sie Nachrichteninhalte aktualisieren möchten, verwenden Sie den Compute- oder Mapping-Knoten.
Als zugrunde liegende Umsetzungssteuerkomponente wird die Xalan-Java-Umsetzungssteuerkomponente (Apache Xalan-java XSLT-Prozessor) verwendet. Weitere Informationen zur XML-Umsetzung erhalten Sie in der W3C-Spezifikation für die Syntax und Semantik der XSL-Umsetzungssprache zum Umsetzen von XML-Dokumenten in andere XML-Dokumente, siehe W3C XSL-Transformationen.
Um die Pflege von Style-Sheets und XML-Dateien zu unterstützen, können Sie diese in Brokerausführungsgruppen implementieren.
Mit dem JMSMQTransform-Knoten können Nachrichten an bestehende Nachrichtenflüsse gesendet werden. Darüberhinaus ermöglicht er die Zusammenarbeit mit WebSphere MQ JMS und WebSphere MQ Publish/Subscribe.
Mit dem MQJMSTransform-Knoten können Nachrichten an bestehende Nachrichtenflüsse gesendet werden. Darüberhinaus ermöglicht er die Zusammenarbeit mit WebSphere MQ JMS und WebSphere MQ Publish/Subscribe.
Mithilfe des MQOptimizedFlow-Knotens können Sie einen Publish/Subscribe-Nachrichtenfluss ersetzen, der aus einem MQInput-Knoten besteht, der mit einem Publication-Knoten verbunden ist und JMS über den WebSphere MQ-Transport nutzt. Der MQOptimizedFlow-Knoten kann auf z/OS-Systemen nicht verwendet werden.
Mit dem Knoten 'MQOptimizedFlow' können Sie die Leistung steigern. Dies gilt insbesondere, wenn ein einzelner Publisher eine persistente Veröffentlichung für einen einzelnen Subskribenten erstellt.
Wenn Ihr Knoten z. B. auf eine Datenbank zugreift, fügen Sie einen benutzerdefinierten Knoten für die Interaktion mit der Datenbank ein. 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.
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 (TimeoutControl-Knoten und TimeoutNotification-Knoten) verwenden, durch die der Zeitpunkt und die Häufigkeit des Auftretens von Ereignissen im Nachrichtenfluss bestimmt werden. Die Weiterleitung hängt von der Nachrichtenkonvertierung ab, obwohl die Route einer Nachricht auch genau bestimmen kann, welche Konvertierung auf der Nachricht ausgeführt werden soll.
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 Validate-Knoten ersetzt den Check-Knoten, der in WebSphere Message Broker Version 6.0 nicht weiter unterstützt wird. Der Validate-Knoten funktioniert wie der Check-Knoten, besitzt aber zusätzliche Validierungseigenschaften, die eine Auswertung des Nachrichteninhalts durch Parser ermöglichen, die diese Funktion unterstützen.
Der Knoten verfügt über folgende Terminals: TRUE, FALSE, UNKNOWN und FAILURE. 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. Kann die Anweisung nicht aufgelöst werden (z. B. wenn der Wert eines Felds getestet wird, das nicht in der Eingabenachricht angezeigt wird), wird die Nachricht an das Terminal UNKNOWN weitergeleitet. Wenn ein anderer Fehler entdeckt wird, wird die Nachricht an das Terminal FAILURE weitergegeben.
Der Test der ESQL-Anweisung kann vom Nachrichteninhalt, vom Datenbankinhalt oder einer Kombination aus beidem abhängig sein.
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. Diese Werte werden mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Verwenden Sie statt des Compute-Knotens den Filter-Knoten zur Steuerung der Nachrichtenauswahl und -weiterleitung, denn er erfüllt diese Task viel effizienter.
Jedem TimeoutNotification-Knoten können mehrere TimeoutControl-Knoten zugeordnet werden.
Mit den AggregateControl-, AggregateReply- und AggregateRequest-Knoten können Sie zusammengehörige Anforderungen und Antworten sortieren. Verwenden Sie diese Knoten, um mehrere Anforderungen als Reaktion auf eine Eingabenachricht zu generieren, um die Antworten, die als Antwort auf diese Anforderungen empfangen werden, zu steuern und zu koordinieren und um die Informationen, die von den Antworten für die Fortsetzung der Verarbeitung bereitgestellt werden, zusammenzuführen.
Verwenden Sie folgende Knoten, um die Fehlerbehandlung und -berichterstellung zu beeinflussen: