WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Filter-Knoten

Mit dem Filter-Knoten leiten Sie Nachrichten entsprechend ihrem Inhalt weiter.

Dieses Thema ist in folgende Abschnitte eingeteilt:

Zweck

Erstellen Sie einen Filterausdruck in ESQL, um die Route zu definieren, welche die Nachricht nehmen soll. Der Filterausdruck kann Elemente der Eingabenachricht oder Nachrichteneigenschaften enthalten, und Sie können Daten aus einer externen Datenbank verwenden, um den Ausdruck zu vervollständigen. Das Ausgabeterminal, an das die Nachricht geleitet wird, hängt davon ab, ob der Ausdruck den Wert 'True' (wahr), 'False' (falsch) oder 'Unknown' (unbekannt) ergibt.

Verbinden Sie die Terminals, die alle Situationen unterstützen, die aus der Filterung entstehen könnten. Wenn der Knoten die Nachricht an ein nicht verbundenes Terminal weitergibt, wird sie verworfen, auch wenn sie transaktionsorientiert ist.

Der Filter-Knoten unterstützt ESQL-Anweisungen auf dieselbe Art wie der Compute-Knoten und der Datenbank-Knoten. Die letzte ausgeführte Anweisung muss eine RETURN <Ausdruck>-Anweisung sein, deren Ausdruck einen Booleschen Wert ergibt. Dieser Boolesche Wert bestimmt das Terminal, an das die Nachricht weitergeleitet wird. In vielen Fällen ist der Weiterleitungsalgorithmus ein einfacher Vergleich der Nachrichtenfeldwerte. Der Vergleich wird vom Ausdruck beschrieben, und die RETURN-Anweisung ist die einzige Anweisung. Wenn Sie RETURN ohne einen Ausdruck (RETURN;) oder mit einem Nullausdruck codieren, gibt der Knoten die Nachricht an das Terminal UNKNOWN weiter.

Wenn Ihr Nachrichtenfluss komplexere Weiterleitungsoptionen erfordert, verwenden Sie den RouteToLabel-Knoten und den Label-Knoten.

Der Filter-Knoten befindet sich im Ablagefach Routing der Palette und wird in der WebSphere Message Broker Toolkit durch folgendes Symbol dargestellt:

Symbol für Filterknoten

Verwendung dieses Knotens in einem Nachrichtenfluss

Die nachfolgenden Mustercodes verdeutlichen die Verwendung dieses Knotens:

Informationen zu Beispielen können nur bei Verwendung des in das WebSphere Message Broker Toolkit integrierten bzw. online verfügbaren Information Center angezeigt werden. Muster können nur ausgeführt werden, wenn das im WebSphere Message Broker Toolkit integrierte Information Center verwendet wird.

Angenommen, Sie haben einen Online-Test mit zehn Multiple-Choice-Fragen erstellt. In jeder ankommenden Nachricht stehen Kandidatennamen und Adresse, gefolgt von mehreren Antworten. Jede Antwort wird geprüft und, wenn sie richtig ist, das Ergebnisfeld um eins erhöht. Nachdem alle Antworten geprüft wurden, wird nachgesehen, ob der Wert im Ergebnisfeld größer als fünf ist. Ist dies der Fall, gibt der Filter-Knoten die Nachricht an den Nachrichtenfluss für erfolgreiche Kandidateneingaben weiter. Liegt der Wert unter fünf, wird die Nachricht an den Zurückweisungsprozess übergeben, und es wird eine Zurückweisungsnachricht erstellt.

Terminals und Eigenschaften

Nachdem Sie eine Instanz des Filter-Knotens in einen Nachrichtenfluss eingereiht haben, können Sie den Knoten konfigurieren; siehe Nachrichtenflussknoten konfigurieren. Die Eigenschaften des Knotens werden in der Ansicht 'Eigenschaften' angezeigt. Alle obligatorischen Eigenschaften, für die Sie einen Wert eingeben müssen (d. h. Eigenschaften ohne definierten Standardwert), sind mit einem Stern gekennzeichnet.

In der folgenden Tabelle werden die Filter-Knotenterminals beschrieben .

Terminal Beschreibung
Eingabeterminal (In) Das Eingabeterminal, das eine Nachricht zur Verarbeitung durch einen Knoten annimmt.
Fehlerterminal (Failure) Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn während der Verarbeitung ein Fehler auftritt.
Unbekannt (Unknown) Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn der angegebene Filterausdruck unknown oder einen Nullwert ergibt.
False Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn der angegebene Filterausdruck False ergibt.
True Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn der angegebene Filterausdruck True ergibt.

In den folgenden Tabellen werden die Knoteneigenschaften beschrieben. Die Spalte M zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Sternchen, wenn ein Wert eingegeben werden muss, weil kein Standardwert definiert ist). Die Spalte C zeigt an, ob die Eigenschaft konfigurierbar ist (Wert kann geändert werden, wenn der Nachrichtenfluss zur BAR-Datei hinzugefügt wird, um ihn einzusetzen).

In der folgenden Tabelle werden die Beschreibungseigenschaften des Filter-Knotens beschrieben.

Eigenschaft M C Standardwert Beschreibung
Knotenname Nein Nein Knotentyp Der Name des Knotens.
Kurzbeschreibung Nein Nein   Eine Kurzbeschreibung des Knotens.
Ausführliche Beschreibung Nein Nein   Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt.

In der folgenden Tabelle werden die grundlegenden Eigenschaften des Filter-Knotens beschrieben.

Eigenschaft M C Standardwert Beschreibung Eigenschaft des Befehls mqsiapplybaroverride
Datenquelle Nein Ja   Der Name der ODBC-Datenquelle für die Datenbank mit den Tabellen, auf die Sie in der mit diesem Knoten verknüpften ESQL-Datei verweisen (wie unter der Eigenschaft Filterausdruck festgelegt). Dieser Name gibt die entsprechende Datenbank auf dem System an, auf dem dieser Nachrichtenfluss ausgeführt werden soll. Der Broker stellt mit der Benutzer-ID und den Kennwortdaten, die Sie in den Befehlen mqsicreatebroker, mqsichangebroker oder mqsisetdbparms angegeben haben, eine Verbindung zu dieser Datenbank her.

z/OS platformAuf z/OS-Systemen verwendet der Broker die vom Broker gestartete Task-ID oder die Benutzer-ID und das Kennwort, die im angepassten Datensatz <hlq>.SBIPPROC im mqsisetdbparms-Befehl 'JCL, BIPSDBP' angegeben werden.

Wenn der ESQL-Code, der diesem Knoten zugeordnet ist, eine PASSTHRU-Anweisung oder SELECT-Funktion und einen Datenbankverweis enthält, müssen Sie für die Eigenschaft Datenquelle einen Wert angeben.

dataSource
Transaktion Ja Nein Automatisch Der Transaktionsmodus für den Knoten. Folgende Werte stehen zur Verfügung:
  • Automatisch (Standardwert). Der Nachrichtenfluss, zu dem der Filter-Knoten gehört, wird festgeschrieben, wenn er erfolgreich ist. Das heißt, dass die Aktionen, die Sie im ESQL-Modul definieren, ausgeführt werden und die Nachricht den Nachrichtenfluss weiter durchläuft. Wenn der Nachrichtenfluss fehl schlägt, wird er zurückgesetzt. Wenn Sie also die Option Automatisch auswählen, hängt die Fähigkeit, die Aktionen des Filter-Knotens in der Datenbank festzuschreiben bzw. zurückzusetzen, vom Erfolg oder Scheitern des gesamten Nachrichtenflusses ab.
  • Festschreiben. Wenn alle nicht festgeschriebenen Aktionen, die in diesem Nachrichtenfluss in der mit diesem Knoten verbundenen Datenbank ausgeführt werden, unabhängig vom Erfolg oder Scheitern des gesamten Nachrichtenflusses festgeschrieben werden sollen, wählen Sie die Option Festschreiben aus. Die Datenbankänderungen werden festgeschrieben, selbst wenn der Nachrichtenfluss fehlschlägt.
 
Filterausdruck Nein Nein Filter Der Name des Moduls innerhalb der ESQL-Ressource (Datei), das die Anweisungen enthält, die für die im Knoten empfangene Nachricht ausgeführt werden sollen. Die ESQL-Datei, deren Name standardmäßig <Nachrichtenflussname>.esql lautet, enthält ESQL-Code für jeden Knoten im Nachrichtenfluss, der dies erfordert. Jeder Code-Abschnitt, der zu einem bestimmten Knoten gehört, wird als Modul bezeichnet. Wenn der Modulname ein oder mehrere Leerzeichen enthalten soll, geben Sie ihn unter der Eigenschaft Filterausdruck in doppelten Anführungszeichen an.

Kodieren Sie die ESQL-Anweisungen zum Anpassen des Verhaltens des Filter-Knotens in einer ESQL-Datei, die mit dem Nachrichtenfluss verknüpft ist, in den Sie diese Instanz des Filter-Knotens eingeschlossen haben.

Wenn für diesen Nachrichtenfluss nicht bereits eine ESQL-Datei vorhanden ist, klicken Sie doppelt auf den Filter-Knoten, oder klicken Sie mit der rechten Maustaste auf den Knoten und klicken sie dann im Kontextmenü auf ESQL öffnen, um in der ESQL-Editoransicht eine neue ESQL-Datei zu erstellen und zu öffnen.

Wenn die Datei bereits vorhanden ist, klicken Sie auf Durchsuchen neben der Eigenschaft Filterausdruck. Daraufhin wird das Dialogfenster 'Modulauswahl' angezeigt, in dem die verfügbaren Filter-Knotenmodule aufgelistet werden, die in den ESQL-Dateien, auf die von diesem Nachrichtenfluss zugegriffen werden kann, definiert sind (ESQL-Dateien können in anderen, abhängigen Projekten definiert werden. Wählen Sie das geeignete Modul aus, und klicken Sie auf OK; wenn keine geeigneten Module zur Verfügung stehen, ist diese Liste leer.

Falls das von Ihnen angegebene Modul nicht existiert, wird es automatisch erstellt und im Editor angezeigt. Wenn die Datei und das Modul bereits vorhanden sind, wird das richtige Modul im Editor hervorgehoben.

Wenn für diesen Knoten das Gerüst eines Moduls in einer neuen oder bereits bestehenden ESQL-Datei erstellt wird, besteht es aus folgender ESQL. In diesem Beispiel wird der Standardname des Moduls verwendet:

CREATE FILTER MODULE <Nachrichtenflussname>_Filter
       CREATE FUNCTION Main() RETURNS BOOLEAN
       BEGIN
               RETURN TRUE; 
       END;
END MODULE;

Wenn Sie ein eigenes ESQL-Modul erstellen, müssen Sie genau dieses Gerüst erstellen. Sie können den Standardnamen ändern. Achten Sie jedoch darauf, dass der von Ihnen angegebene Name mit dem Namen der entsprechenden Knoteneigenschaft Filterausdruck übereinstimmt.

Fügen Sie zum Anpassen dieses Knotens eigenen ESQL-Code hinter der BEGIN-Anweisung und vor der RETURN-Anweisung hinzu. Wenn der Ausdruck in der RETURN-Anweisung nicht den Wert TRUE (wahr) oder FALSE (falsch) ergibt, wird sein Wert ermittelt, um das Terminal zu bestimmen, an das die Nachricht weitergegeben wird. Wenn der Ausdruck einen Nullwert ergibt, Sie RETURN; codieren oder die RETURN-Anweisung übergehen, gibt der Knoten die Nachricht an das Terminal UNKNOWN weiter.

 
       

Sie können in diesem Modul alle ESQL-Anweisungen einschließlich SET, WHILE, DECLARE und IF verwenden. Allerdings gibt der Filter-Knoten (im Gegensatz zum Compute-Knoten) die Nachricht, die er an seinem Eingabeterminal empfängt, unverändert an sein Ausgabeterminal weiter. Deshalb befindet sich im Filter-Knoten, ebenso wie im Datenbank-Knoten, nur eine Nachricht, auf die Sie sich beziehen können.

Die in einem Filter-Knoten verwendeten ESQL-Korrelationsnamen unterscheiden sich von denen, die für einen Compute-Knoten verwendet werden. Weitere Informationen zu Korrelationsnamen finden Sie in den zugehörigen Links.

Da keine Komponente der Nachricht modifiziert werden kann, können Sie über die Zuordnungsanweisung (die SET-Anweisung, nicht die SET-Klausel der INSERT-Anweisung) nur temporären Variablen Werte zuordnen. Der Umfang dieser Aktionen, die Sie mit einer Zuordnungsanweisung vornehmen können, ist daher begrenzt.

 
Warnungen als Fehler behandeln Ja Nein Nicht ausgewählt Wenn Datenbankwarnungen als Fehler behandelt werden sollen und die Ausgabenachricht vom Knoten an das Fehlerterminal (Failure) weitergegeben werden soll, aktivieren Sie Warnungen als Fehler behandeln. Das Kontrollkästchen ist zu Beginn inaktiviert.

Wenn Sie es aktivieren, behandelt der Knoten alle positiven Rückkehrcodes von der Datenbank als Fehler und generiert Ausnahmebedingungen auf dieselbe Art wie bei negativen oder schwerwiegenden Fehlern.

Wenn Sie das Kontrollkästchen nicht aktivieren, behandelt der Knoten Warnungen als normale Rückkehrcodes und löst keine Ausnahmebedingungen aus. Die höchstwertige Warnung, die ausgegeben werden kann, lautet nicht gefunden. Sie kann in den meisten Fällen als normaler Rückkehrcode sicher bearbeitet werden.

 
Ausnahmebedingung für Datenbankfehler ausgeben Ja Nein Ausgewählt Wenn der Broker bei Erkennung eines Datenbankfehlers eine Ausnahmebedingung generieren soll, aktivieren Sie Ausnahme für Datenbankfehler ausgeben. Das Kontrollkästchen ist zu Beginn aktiviert.

Wenn Sie es inaktivieren, müssen Sie ESQL-Code einfügen, um nach allen Datenbankfehlern zu suchen, die eventuell nach jedem Datenbankaufruf (mit SQLCODE und SQLSTATE) zurückgegeben werden. Wenn ein Fehler auftrat, müssen Sie ihn im Nachrichtenfluss bearbeiten, um die Integrität des Brokers und der Datenbank zu gewährleisten. Wenn Sie den Fehler nicht über einen eigenen Prozess bearbeiten, wird er ignoriert, da Sie sich gegen den Aufruf der Standardfehlerbehandlung durch den Broker entschieden haben. Beispiel: Sie können die ESQL-Anweisung THROW einschließen, um in diesem Knoten eine Ausnahmebedingung auszugeben, oder Sie generieren mit dem Throw-Knoten zu einem späteren Zeitpunkt Ihre eigene Ausnahmebedingung.

 

Verbinden, bevor Fluss startet

Nein

Ja

Nicht ausgewählt

Standardmäßig stellt der Broker eine Verbindung mit der Datenquelle her, wenn dies in einem Nachrichtenfluss erforderlich ist.

Wenn Sie das Kontrollkästchen aktivieren, werden Datenquellenverbindungen hergestellt, bevor der Nachrichtenfluss eine Nachricht empfängt, und nicht erst während der Nachrichtenflussverarbeitung.

 
Die Überwachungseigenschaften des Knotens werden in der folgenden Tabelle beschrieben.
Eigenschaft O K Standardwert Beschreibung
Ereignisse Nein Nein Ohne Auf dieser Registerkarte werden Ereignisse angezeigt, die Sie für den Knoten definiert haben. Standardmäßig sind für keinen Knoten in einem Nachrichtenfluss Überwachungsereignisse definiert. Über Hinzufügen, Bearbeiten und Löschen können Sie Überwachungsereignisse für den Knoten erstellen, ändern oder löschen (Details siehe Überwachungsereignisquellen mithilfe von Überwachungseigenschaften konfigurieren).

Sie können hier angezeigte Ereignisse aktivieren oder inaktivieren, indem Sie das Kontrollkästchen Aktiviert aktivieren oder inaktivieren.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:19:55


ReferenzthemaReferenzthema | Version 8.0.0.5 | ac04780_