WebSphere Message Broker enthält viele Nachrichtenverarbeitungsknoten, die Sie in Ihren Nachrichtenflüssen nutzen 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:
Ein Eingangsterminal stellt eine Instanz eines Empfangsknoten dar. Wenn Sie beispielsweise eine Instanz eines Empfangsknotens 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.
Sie können mehrere Empfangsknoten in einem Nachrichtfluss verwenden. Der Abschnitt Mehrere Empfangsknoten verwenden enthält weitere Informationen hierzu.
Ein Ausgangsterminal stellt eine Instanz eines Sendeknotens dar. Wenn Sie beispielsweise zwei Instanzen eines Sendeknotens 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 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.
Beispielsweise werden persönliche Namen in den verschiedenen Anwendungen in vielen Formaten angegeben. Familienname vor oder nach dem Vornamen, mit oder ohne Mittelinitialen, groß oder klein geschrieben, um nur einige der Umsetzungen zu nennen. Da Sie den Nachrichtenfluss so konfigurieren können, dass er die Anforderungen jeder Anwendung kennt, kann jede Nachricht in das richtige Format umgewandelt werden ohne dabei die sendende oder empfangende Anwendung zu bearbeiten.
Sie können den Inhalt der Nachricht auf verschiedene Art und Weise aktualisieren. In diesem Fall hängt Ihre Wahl wahrscheinlich davon ab, ob der Nachrichtenfluss vordefinierte (modellierte) oder selbstdefinierende (z. B. XML) Nachrichten, oder beide, bearbeiten muss.
Ein Nachrichtenfluss kann eine Nachricht ganz wiederherstellen, sie in ein anderes Format umwandeln (unabhängig davon, ob Format die Reihenfolge der Felder, die Byte-Anordnung, die Sprache o. ä. bedeutet), den Inhalt aus ihr entfernen oder bestimmte Daten einführen. Ein Knoten kann beispielsweise mit einer Datenbank interagieren, um zusätzliche Informationen abzurufen oder um eine Kopie der Nachricht (ganz oder teilweise) in der Datenbank für die Offline-Verarbeitung zu speichern.
Die folgenden Beispiele zeigen, wie wichtig Nachrichtenkonvertierung sein kann:
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 auf diese Nachricht oder die Datenbank ausgeführt werden sollen. Verwenden Sie den ESQL-Code, den Sie für einen Rechenknoten entwickelt haben, nicht für eine andere Knotenart.
Wenn Sie die Benutzer- und Kennwortinformationen der Datenquelle, die Sie in den Knoteneigenschaften bestimmt haben, angeben, können Sie steuern, wie dieser Knoten auf die Datenbank zugreift. Auf verteilten Systemen werden diese Werte mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Wenn Sie die Benutzer- und
Kennwortinformationen der Datenquelle, die Sie in den Knoteneigenschaften
bestimmt haben, angeben, können Sie steuern, wie dieser Knoten auf die Datenbank
zugreift. Diese Werte werden mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Auch komplexe Anforderungen an Ihre Nachrichtenbearbeitung, können mit einem einzelnen Rechenknoten erfüllt werden. Weniger, aber komplexere Rechenknoten haben eine bessere Leistung als viele einfachere Knoten, das der Broker die Nachricht beim Eingang auf jedem Rechenknoten analysiert.
Wenn Sie die Benutzer- und Kennwortinformationen der Datenquelle, die Sie in den Knoteneigenschaften bestimmt haben, angeben, können Sie steuern, wie dieser Knoten auf die Datenbank zugreift. Auf verteilten Systemen werden diese Werte mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Mit einem Zuordnungseditor können Sie Zuordnungen entwickeln, um einfache Bearbeitungen auf vordefinierten Nachrichten im Zuordnungsknoten auszuführen. Verwenden Sie die Zuordnungen, die Sie für einen Zuordnungsknoten entwickelt haben, nicht für eine andere Knotenart.
Mit einem Zuordnungseditor können Sie Zuordnungen entwickeln, um einfache Bearbeitungen auf vordefinierten Nachrichten im Extraktionsknoten auszuführen. Verwenden Sie die Zuordnungen, die Sie für einen Extraktionsknoten entwickelt haben, nicht für eine andere Knotenart.
Dieser Knoten verfügt über eine äußerst flexible Schnittstelle mit vielen Funktionen. Er hat auch Eigenschaften, mit denen Sie steuern können, wie bei Transaktionen interagiert wird.
Wenn Sie die Benutzer- und Kennwortinformationen der Datenquelle, die Sie in den Knoteneigenschaften bestimmt haben, angeben, können Sie steuern, wie dieser Knoten auf die Datenbank zugreift. Auf verteilten Systemen werden diese Werte mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Sie können von diesem Knoten nur Datenbanken aktualisieren und keinen Nachrichteninhalt. Wenn Sie einen Nachrichteninhalt aktualisieren möchten, müssen Sie den Rechen- oder den Zuordnungsknoten verwenden.
Wenn Sie die Benutzer- und Kennwortinformationen der Datenquelle, die Sie in den Knoteneigenschaften bestimmt haben, angeben, können Sie steuern, wie dieser Knoten auf die Datenbank zugreift. Auf verteilten Systemen werden diese Werte mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Sie können von diesen Knoten nur Datenbanken aktualisieren und keinen Nachrichteninhalt. Wenn Sie einen Nachrichteninhalt aktualisieren möchten, müssen Sie den Rechen- oder den Zuordnungsknoten verwenden.
Wenn Sie die Benutzer- und Kennwortinformationen der Datenquelle, die Sie in den Knoteneigenschaften bestimmt haben, angeben, können Sie steuern, wie dieser Knoten auf die Datenbank zugreift. Auf verteilten Systemen werden diese Werte mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
Sie können von diesem Knoten nur Datenbanken aktualisieren und keinen Nachrichteninhalt. Wenn Sie einen Nachrichteninhalt aktualisieren möchten, müssen Sie den Rechen- oder den Zuordnungsknoten verwenden.
Wenn Sie die Benutzer- und Kennwortinformationen der Datenquelle, die Sie in den Knoteneigenschaften bestimmt haben, angeben, können Sie steuern, wie dieser Knoten auf die Datenbank zugreift. Auf verteilten Systemen werden diese Werte mit dem Befehl mqsisetdbparms initialisiert und verwaltet.
In der folgenden Tabelle werden die in diesen Knoten möglichen Aktualisierungen zusammen gefasst:
Knoten | Datenbank aktualisieren? | Nachricht aktualisieren? | Lokale Umgebung aktualisieren? | Nachrichtengruppe erforderlich? |
---|---|---|---|---|
Rechenknoten | Ja | Ja | Ja | Nein |
Datenbankknoten | Ja | Nein | Ja | Nein |
Datenlöschknoten | Ja | Nein | Ja | Ja |
Dateneinfügeknoten | Ja | Nein | Ja | Ja |
Datenaktualisierungsknoten | Ja | Nein | Ja | Ja |
Extraktionsknoten | Ja | Ja | Ja | Ja |
Zuordnungsknoten | Ja | Ja | Ja | Ja |
Warehouse | Ja | Nein | Ja | Ja |
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 (http://xml.apache.org/xalan-j) verwendet. Weitere Informationen zu XMLT finden Sie unter http://www.w3.org/TR/xslt.
Um die Verwaltung von Style-Sheets und XML-Dateien zu erleichtern, können Sie diese in Brokerausführungsgruppen implementieren.
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. 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.
Eine Anwendung zur Geldüberweisung z. B. sendet die Nachrichten immer an eine andere Anwendung. Sie könnten festlegen, dass jede Nachricht mit einem Überweisungsbetrag über 10,000 $ auch an eine zweite Anwendung gesendet werden muss, damit alle Transaktionen über hohe Geldbeträge aufgezeichnet werden können.
Ein anderes Beispiel wäre, wenn ein nationaler Autoclub ausgewählten Mitgliedern einen VIP-Service für Aufträge über einer bestimmten Mindestgrenze anbietet. Die meisten Aufträge werden entlang der üblichen Route geleitet, aber wenn die Mitgliedernummer und der Auftragswert bestimmte Kriterien erfüllen, erhält der Auftrag Sonderkonditionen.
Wenn Sie zusätzliche Route-Informationen in der Nachricht einbauen, die verarbeitet wird, können Sie ein dynamischeres Routing aufbauen. Optionale Gruppen von Regeln werden erstellt, um die Nachricht entsprechend ihrer vorgegebenen Werte (Ziele) zu empfangen. Diese Regeln, z. B. dass eine Nachricht von einer oder mehreren optionalen Gruppen von Regeln verarbeitet wird, können Sie in der Reihenfolge aufbauen, die im hinzugefügtem Nachrichteninhalt bestimmt ist.
Nutzen Sie die folgenden Knoten, um die Route, der eine Nachricht über den Nachrichtenfluss folgt, zu bestimmen:
Die Terminals des Knoten sind wahr, falsch, unbekannt und Fehler. Bei erfolgreichem Test wird die Nachricht an das wahre Terminal weiter geleitet, bei fehlgeschlagenem Test an das falsche. Kann die Anweisung nicht aufgelöst werden (z. B. wenn der Wert eines Feldes gestestet wird, das nicht in der Eingabenachricht angezeigt wird), wird die Nachricht an das unbekannte Terminal weiter geleitet. Wenn ein anderer Fehler entdeckt wird, wird die Nachricht an den Fehlerterminal weitergegeben.
Der Test der ESQL-Anweisung kann vom Nachrichteninhalt, vom Datenbankinhalt oder einer Kombination aus beidem abhängig sein.
Wenn Sie einen Verweis zur Datenbank angeben, können Sie steuern, wie dieser Knoten auf sie zugreift, indem Sie die Benutzer- und Kennwortinformationen jeder Datenquelle, die in der Registrierungsdatenbank auf dem Brokersystem definiert ist, angeben. In verteilten Systemen geben Sie den Befehl mqsisetdbparms ein, um diese Werte zu initialisieren und zu verwalten.
Unter z/OS, verwenden Sie die vom Broker gestartete Task-ID, um auf die Datenbank zu zugreifen.
Damit Sie diese Funktion nutzen können, sollten Sie diesen Knoten dem Rechenknoten vorziehen, obwohl Sie auch einen Rechenknoten so konfigurieren können, dass die Nachrichtenauswahl und die Weiterleitung gesteuert wird, allerdings ist der Filterknoten leistungsfähiger.
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.
Mit den Knoten zur Aggregationssteuerung, für Aggregationsantworten und für Aggregationsanforderungen können Sie die auf Nachrichten bezogenen Anfragen und Antworten sortieren. Nutzen Sie diese Knoten, um mehrere Anfragen und Antworten in Bezug auf eine Eingabenachricht zu erstellen und die Antworten, die in Beantwortung dieser Anfragen empfangen wurden, zu kontrollieren und zu koordinieren sowie die von den Antworten gelieferten Informationen in die weiterführende Verarbeitung einzubinden.
Sie können Knoten nutzen, die die Fehlerbehandlung und die Berichterstellung beeinflussen:
Mit der Ausnahme von Rechen-, Extraktions-, und Zuordnungsknoten, sind die von einem Knoten empfangenen Eingabenachrichten mit die von ihm weiter gesendeten Ausgabenachrichten identisch.