Mit dem MQGet-Knoten können Sie Nachrichten von Clients empfangen, die über WebSphere MQ Enterprise Transport eine Verbindung zum Broker herstellen und die MQI- und AMI-Anwendungsprogrammierschnittstellen verwenden.
Über den MQGet-Knoten können darüberhinaus Nachrichten abgerufen werden, die zuvor in eine für den Warteschlangenmanager des Brokers definierte WebSphere MQ-Nachrichtenwarteschlange eingereiht wurden.
Dieses Thema enthält folgende Abschnitte:
Der MQGet-Knoten liest eine Nachricht aus einer angegebenen Warteschlange und erstellt die Verarbeitungsumgebung für die Nachricht. Je nach Bedarf können Sie die Eingabewarteschlange als eine WebSphere MQ-Clusterwarteschlange oder als gemeinsam genutzte Warteschlange definieren.
Ein MQGet-Knoten kann - anders als ein MQInput-Knoten, der nur als erster Knoten in einem Nachrichtenfluss verwendet werden kann - an jeder beliebigen Stelle im Nachrichtenfluss eingesetzt werden. Die Baumstruktur einer Ausgabenachricht von einem MQGet-Knoten wird erstellt, indem die Eingabebaumstruktur mit der Ergebnisbaumstruktur des MQGET-Aufrufs kombiniert wird. Sie können in den Eigenschaften des MQGet-Knotens festlegen, dass die Art des Nachrichtenempfangs kontrolliert werden soll. So können Sie beispielsweise angeben, dass eine Nachricht unter Transaktionssteuerung verarbeitet werden soll. Außerdem können Sie anfordern, dass während der Erstellung der Ergebnisbaumstruktur beim Empfang aller Eingabenachrichten eine Datenkonvertierung erfolgen soll.
Der MQGet-Knoten ist in der WebSphere MQ-Ablage der Palette enthalten und wird in der Workbench durch folgendes Symbol dargestellt:
Wenn Sie eine Instanz des MQGet-Knotens in einen Nachrichtenfluss eingereiht haben, können Sie ihn konfigurieren. Weitere Informationen finden Sie unter Nachrichtenflussknoten konfigurieren. Die Knoteneigenschaften werden in der Eigenschaftenansicht angezeigt. Klicken Sie zum Anzeigen der Knoteneigenschaften im Dialogfeld 'Eigenschaften' doppelt auf den Knoten, oder klicken Sie mit der rechten Maustaste und dann im Kontextmenü auf Eigenschaften.
Alle verbindlichen Eigenschaften, für die Sie einen Wert eingeben müssen (d. h. Eigenschaften ohne definierten Standardwert), sind mit einem Sternchen gekennzeichnet.
Konfigurieren Sie den MQGet-Knoten.
<mcd><Msd>MRM</Msd><Set>DHM4UO906S001</Set><Type>receiptmsg1</Type> <Fmt>XML</Fmt></mcd>
Wenn Sie Werte festlegen, die sich von denen im MQRFH2-Header unterscheiden, haben die Werte im MQRFH2-Header Vorrang.
Lassen Sie das Feld Nachrichtengruppe leer, wenn Sie Browser vom Typ XML, XMLNS, XMLNSC, JMS, MIME und BLOB verwenden.
Das Feld Nachrichtentyp ist für Parser vom Typ XML, XMLNS, XMLNSC, JMS, IDOC, MIME und BLOB leer zu lassen.
Lassen Sie das Feld Nachrichtenformat bei Parsern vom Typ XML, XMLNS, XMLNSC, JMS, MIME und BLOB leer.
Wenn Sie den Wert für diese Option in Sofort ändern, wird die Teil-Syntaxanalyse außer Kraft gesetzt. In diesem Fall werden mit Ausnahme der komplexen Typen mit der Zusammensetzung 'Auswahl' oder 'Nachricht' alle Nachrichtenkomponenten syntaktisch analysiert und ausgewertet, die zu diesem Zeitpunkt nicht aufgelöst werden können. Wenn Sie diesen Wert in Vollständig ändern, wird die Teil-Syntaxanalyse außer Kraft gesetzt. In diesem Fall werden alle Nachrichtenkomponenten syntaktisch analysiert und ausgewertet; komplexe Typen mit der Zusammensetzung 'Auswahl' oder 'Nachricht', die zu diesem Zeitpunkt nicht aufgelöst werden können, verursachen einen Fehler bei der Gültigkeitsprüfung.
Sie können alle gültigen ESQL-Feldverweise eingeben. Dazu gehören auch Ausdrücke innerhalb des Verweises sowie neue Feldverweise zum Erstellen eines neuen Knotens innerhalb der Nachrichtenbaumstruktur zur Eingabe der Antwort in die Nachricht, die von der Eingabebaumstruktur weitergegeben wird. OutputRoot.XMLNS.ABC.DEF und Environment.GotReply sind beispielsweise gültige Feldverweise. Ausführlichere Informationen finden Sie im Abschnitt Szenario des Typs 'Anforderung/Antwort' unter Verwendung eines MQGet-Knotens.
Wenn die Nachricht in der Warteschlange-Bitfolge für die Erstellung der Inhalte der Nachrichtenbaumstruktur analysiert wird, werden die Nachrichteneigenschaften verwendet, die Sie als Eigenschaften für 'Syntaxanalyse der Eingabenachricht' des Knotens angegeben haben.
Sie können jeden beliebigen gültigen ESQL-Feldverweis eingeben (siehe Beschreibung der Eigenschaft Position für Ausgabedaten). Bei den Daten, die an diese Position gestellt werden, handelt es sich immer um die gesamte Ergebnisbaumstruktur, deren Hauptteil als Element des Typs BLOB (Binäres Großobjekt) enthalten ist. Für Warndaten wird das Feld Position für Ergebnisdaten nicht verwendet.
Weitere Informationen finden Sie unter Nachrichten überprüfen und Auswertungseigenschaften.
Wenn Sie einen MQGet-Knoten in einen Nachrichtenfluss einschließen und konfigurieren, sollen dessen Eigenschaften möglicherweise unter bestimmten Bedingungen überschrieben werden. Zum Beispiel möchten Sie vielleicht aus einer Warteschlange lesen, die in einem anderen Teil der Nachricht identifiziert wird oder die aus einem Datenbanksatz abgerufen wird.
Wenn Sie die Werte, die Sie für die Eigenschaften eines MQGet-Knotens festgelegt haben, überschreiben möchten, um eine dynamischere Nachrichtenverarbeitung zu erreichen, fügen Sie vor dem MQGet-Knoten einen Compute- oder JavaCompute-Knoten in Ihren Nachrichtenfluss ein. Konfigurieren Sie diesen Knoten, um eine neue Ausgabenachricht zu erstellen, und fügen Sie Felder zur Baumstruktur für die lokale Umgebung hinzu, um neue Werte für die zu ändernden Eigenschaften zu definieren.
Fügen Sie beispielsweise einen Compute-Knoten im Nachrichtenfluss hinzu, und definieren Sie einen neuen Warteschlangennamen für den MQGet-Knoten zum Lesen von Nachrichten, indem Sie folgende ESQL-Anweisung einfügen:
SET LocalEnvironment.MQ.GET.QueueName = 'Neue_Warteschlange';
Verwenden Sie 'LocalEnvironment.MQ.GET.' als den Korrelationsnamen für alle Felder, die sich auf den MQGet-Knoten beziehen.
Verbinden Sie die Ausgangs-, Warnungs- und Fehlerterminals sowie das Ausgabeterminal 'Keine Nachricht' dieses Knotens mit einem anderen Knoten im Nachrichtenfluss, um die Nachricht weiterzuverarbeiten, Fehler zu verarbeiten oder die Nachricht an eine weitere Zieladresse zu senden.
Der Abschnitt Verbindungen zu Fehlerterminals herstellen enthält weitere Informationen hierzu.
In der folgenden Tabelle werden die Terminals des MQGet-Knotens beschrieben.
Terminal | Beschreibung |
---|---|
Eingangsterminal | Das Eingangsterminal, das die vom Nachrichtenfluss verarbeitete Nachricht annimmt. |
Warnung | Das Ausgabeterminal, an das die Ausgabebaumstruktur weitergegeben wird, wenn beim Versuch, eine Nachricht aus der Warteschlange abzurufen, ein Fehler (mit einem Bedingungscode, der eine Warnung anzeigt) im Knoten auftritt. Der MQMD-Bereich der Nachricht wird syntaktisch analysiert, beim übrigen Bereich der Nachricht handelt es sich jedoch um ein nicht syntaktisch analysiertes BLOB-Element. Die Warnung wird gelöscht, wenn das Terminal nicht verbunden ist, und es findet keine Weitergabe der Ausgabe vom Knoten statt. |
Fehlerterminal | Das Ausgabeterminal, an das die Eingabenachricht weitergegeben wird, wenn beim Versuch, eine Nachricht aus der Warteschlange abzurufen, ein Fehler (mit einem Bedingungscode, der schwer wiegender ist als eine Warnung) im Knoten auftritt. |
Ausgabeterminal | Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn sie erfolgreich von der WebSphere MQ-Warteschlange abgerufen wurde. |
Keine Nachricht | Das Ausgabeterminal, an das die Eingabenachricht geleitet wird, wenn in der Warteschlange keine Nachricht zur Verfügung steht. Die an das Terminal 'Keine Nachricht' weitergegebene Ausgabenachricht wird nur aus der Eingabenachricht erstellt, wobei die Werte der Eigenschaften Generierungsmodus, Nachricht kopieren und Lokale Umgebung kopieren berücksichtigt werden. |
In den folgenden Tabellen werden die Knoteneigenschaften beschrieben. Die Spalte O zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Sternchen, wenn ein Wert eingegeben werden muss). Die Spalte K zeigt an, ob die Eigenschaft konfigurierbar ist (Wert kann geändert werden, wenn der Nachrichtenfluss zur BAR-Datei hinzugefügt wird, um ihn zu implementieren).
In der folgenden Tabelle werden die Eigenschaften für die Beschreibung des MQGet-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Knotenname | Nein | Nein | Knotentyp MQGet | Der Name des Knotens. |
Kurzbeschreibung | Nein | Nein | - | Kurze Beschreibung des Knotens |
Ausführliche Beschreibung | Nein | Nein | - | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt. |
In der folgenden Tabelle werden die Basiseigenschaften des MQGet-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Warteschlangenname | Ja | Ja | Keine | Der Name der WebSphere MQ-Nachrichtenwarteschlange, aus der dieser Knoten Nachrichten abruft. |
In der folgenden Tabelle werden die Eigenschaften von 'Syntaxanalyse der Eingabenachricht' des MQGet-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Nachrichtendomäne | Nein | Nein | Keine | Die Domäne für die Syntaxanalyse der Nachricht in der Warteschlange. |
Nachrichtengruppe | Nein | Nein | Keine | Der Name oder die ID der Nachrichtengruppe, in der die Nachricht in der Warteschlange definiert ist. |
Nachrichtentyp | Nein | Nein | Keine | Der Name der Nachricht in der Warteschlange. |
Nachrichtenformat | Nein | Nein | Keine | Der Name des physischen Formats der Nachricht in der Warteschlange. |
In der folgenden Tabelle werden die Eigenschaften der Parser-Optionen für den MQGet-Knoten beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Zeitpunkt für Syntaxanalyse | Nein | Nein | Bei Bedarf | Über diese Eigenschaft wird der Zeitpunkt der syntaktischen Analyse der Nachricht in der Warteschlange gesteuert. Gültige Werte sind Bei Bedarf, Sofort und Vollständig. Eine vollständige Beschreibung dieser Eigenschaft finden Sie unter Bedarfsgerechte Syntaxanalyse. |
MQRFH2C-Kompaktparser für MQRFH2-Domäne verwenden | Nein | Nein | Gelöscht | Diese Eigenschaft steuert, ob der MQRFH2C-Kompaktparser anstelle des MQRFH2-Parsers für MQRFH2-Header verwendet wird. |
XMLNSC-Kompaktparser für XMLNS-Domäne verwenden | Nein | Nein | Gelöscht | Durch diese Eigenschaft wird gesteuert, ob der XMLNSC-Kompaktparser für Nachrichten in der XMLNS-Domäne verwendet wird. Bei Festlegung dieser Eigenschaft erscheinen die Nachrichtendaten in Knoten, die mit dem Ausgabeterminal verbunden sind, unter XMLNSC, wenn XMLNS die Nachrichtendomäne des MQRFH2-Eingabeheaders oder der Eigenschaften der Syntaxanalyse der Eingabenachricht ist. |
Zugriff auf gemischten Inhalt | Nein | Nein | Gelöscht | Über diese Eigenschaft wird gesteuert, ob der XMLNSC-Parser Elemente in der Nachrichtenbaumstruktur erstellt, wenn er in der Nachricht in der Warteschlange gemischten Text findet. Wenn Sie das Kontrollkästchen aktivieren, werden Elemente für gemischten Text erstellt. Andernfalls wird gemischter Text ignoriert, und es werden keine Elemente erstellt. |
Kommentare beibehalten | Nein | Nein | Gelöscht | Über diese Eigenschaft wird gesteuert, ob der XMLNSC-Parser Elemente in der Nachrichtenbaumstruktur erstellt, wenn er in der Nachricht in der Warteschlange Kommentare findet. Wenn Sie das Kontrollkästchen aktivieren, werden Elemente für Kommentare erstellt. Andernfalls werden Kommentare ignoriert, und es werden keine Elemente erstellt. |
Verarbeitungsanweisung beibehalten | Nein | Nein | Gelöscht | Über diese Eigenschaft wird gesteuert, ob der XMLNSC-Parser Elemente in der Nachrichtenbaumstruktur erstellt, wenn er in der Nachricht in der Warteschlange Verarbeitungsanweisungen findet. Wenn Sie das Kontrollkästchen aktivieren, werden Elemente für Verarbeitungsanweisungen erstellt. Andernfalls werden Verarbeitungsanweisungen ignoriert, und es werden keine Elemente erstellt. |
In der folgenden Tabelle werden die erweiterten Eigenschaften des MQGet-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Transaktionsmodus | Nein | Nein | Ja | Durch diese Eigenschaft wird gesteuert, ob die eingehende Nachricht unter Synchronisationspunktsteuerung empfangen wird. Gültige Werte sind Automatisch, Ja und Nein. |
Generierungsmodus | Nein | Nein | Nachricht | Durch diese Eigenschaft wird gesteuert, welche Teile der Nachricht aus der Eingabebaumstruktur kopiert werden. Gültige Werte sind Nachricht, Lokale Umgebung, Nachricht und lokale Umgebung und Keine. |
Nachricht kopieren | Nein | Nein | Keines | Durch diese Eigenschaft wird gesteuert, welche Teile der Nachricht aus der Eingabebaumstruktur kopiert werden. Gültige Werte sind Keine, Header kopieren und Gesamte Nachricht kopieren. |
Lokale Umgebung kopieren | Nein | Nein | Gesamte lokale Umgebung kopieren | Durch diese Eigenschaft wird gesteuert, wie die lokale Umgebung in
die Ausgabenachricht kopiert wird. Bei Auswahl von Gesamte
lokale Umgebung kopieren wird in jedem Knoten im Nachrichtenfluss eine neue Kopie der
lokalen Umgebung in der Baumstruktur erstellt und mit dem Inhalt der lokalen Umgebung aus dem
vorherigen Knoten aufgefüllt. Wenn ein Knoten die lokale Umgebung ändert, werden diese Änderungen den vorgeschalteten Knoten nicht angezeigt, da sie über eigene Kopien verfügen. Dieses Verhalten könnte ein Problem darstellen, wenn Sie einen FlowOrder-Knoten verwenden oder den Befehl 'propagate' auf einem Compute-Knoten verwenden. Wenn Sie diese Eigenschaft auf Keine setzen, erstellen die jeweiligen Knoten keine eigenen Kopien der lokalen Umgebung, sondern verwenden die lokale Umgebung, die vom vorherigen Knoten übergeben wird. Wenn also in diesem Fall die lokale Umgebung für einen Knoten geändert wird, werden diese Änderungen auch von den vorgeordneten Knoten bemerkt. |
Warteintervall (ms) | Ja | Nein | 1000 | Die maximale Zeitspanne (in Millisekunden), die auf den Erhalt der Nachricht in der Warteschlange aus der Nachrichtenwarteschlange gewartet wird. |
Mindestgröße für Nachrichtenpuffer (KB) | Ja | Nein | 4 | Die Mindestgröße (in KB) des Abrufpuffers. Der Mindestwert für diese Eigenschaft beträgt 1. |
In der folgenden Tabelle werden die Anforderungseigenschaften des MQGet-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
MQMD-Position in der Eingabe | Nein | Nein | Die Position im Aufbau der Eingabenachricht an der sich der für den MQGET-Aufruf zu verwendende MQMD befindet. Die Standardposition ist InputRoot.MQMD. | |
Position der MQ-Parameter in der Eingabe | Nein | Nein | Die Position im Aufbau der Eingabenachricht, an der sich die WebSphere MQ-Parameter (z. B. die anfängliche Puffergröße und die MQGMO-Überschreibungswerte) befinden. Die Standardposition ist InputLocalEnvironment.MQ.GET. | |
Abruf nach Korrelations-ID | Nein | Nein | Gelöscht | Wird dieses Kontrollkästchen aktiviert, werden nur Nachrichten mit der angegebenen Korrelations-ID abgerufen. |
Abruf nach Nachrichten-ID | Nein | Nein | Gelöscht | Wird dieses Kontrollkästchen aktiviert, werden nur Nachrichten mit der angegebenen Nachrichten-ID abgerufen. |
Vollständigen Eingabe-MQMD verwenden | Nein | Nein | Gelöscht | Bei Auswahl dieses Kontrollkästchens werden alle MQMD-Felder verwendet; andernfalls werden nur die Nachrichten-ID und die Korrelations-ID verwendet. |
In der folgenden Tabelle werden die Ergebniseigenschaften des MQGet-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Position für Ausgabedaten | Nein | Nein | OutputRoot | Durch diese Eigenschaft wird festgelegt, wohin die Ausgabedaten gestellt werden. Falls in diesem Feld keine Angabe erfolgt, wird als Standardwert OutputRoot verwendet. |
Position für Ergebnisdaten | Nein | Nein | ResultRoot | Diese Eigenschaft gibt an, welche Unterverzeichnisstruktur (der Nachricht in der Warteschlange) verwendet werden soll. Wenn in diesem Feld kein Wert angegeben wird, wird als Standardwert ResultRoot übernommen, und es wird die gesamte Nachricht in der Warteschlange verwendet. Wird beispielsweise ResultRoot.MQMD.ReplyToQ angegeben, wird nur diese untergeordnete Baumstruktur verwendet. |
Position für MQ-Ausgabeparameter | Nein | Nein | Über diese Eigenschaft wird angegeben, wo sich die WebSphere MQ-Ausgabeparameter befinden. Bleibt das Feld leer, wird 'OutputLocalEnvironment.MQ.GET' als Standardwert verwendet. Legen Sie für den Generierungsmodus fest, dass Lokale Umgebung enthalten sein soll. Auf diese Weise wird sichergestellt, dass die aktualisierten Werte in nachgeordneten Knoten sichtbar sind. Die Standardposition lautet OutputLocalEnvironment.MQ.GET. | |
Position für Warndaten | Nein | Nein | OutputRoot | Über diese Eigenschaft wird angegeben, wohin die Ausgabedaten gestellt werden, wenn von MQGET ein Warncode ausgegeben wird. Bleibt das Feld leer, wird OutputRoot als Standardwert verwendet. |
In der folgenden Tabelle werden die Auswertungseigenschaften des MQGet-Knotens beschrieben.
Eine umfassende Beschreibung dieser Eigenschaften finden Sie im Abschnitt Auswertungseigenschaften.Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Auswerten | Nein | Ja | Keines | Durch diese Eigenschaft wird gesteuert, ob eine Auswertung stattfindet. Gültige Werte sind Keine, Inhalt, Inhalt und Wert und Übernehmen. |
Fehlerbehebungsmaßnahme | Nein | Nein | Ausnahme | Durch diese Eigenschaft wird gesteuert, was beim Fehlschlagen der Auswertung geschieht. Sie können diese Eigenschaft nur angeben, wenn Sie Auswerten auf Inhalt oder Inhalt und Wert gesetzt haben. Gültige Werte sind Benutzertrace, Lokales Fehlerprotokoll, Ausnahmebedingung und Ausnahmeliste. |
Alle Wertvorgaben einschließen | Nein | Nein | True | Diese Eigenschaft kann nicht bearbeitet werden. Bei der Auswertung von Inhalt und Wert werden Basisprüfungen der Wertvorgaben durchgeführt. |
Korrektur | Nein | Nein | Keines | Diese Eigenschaft kann nicht bearbeitet werden. |