Szenario des Typs 'Anforderung/Antwort' unter Verwendung eines MQGet-Knotens

In diesem Abschnitt wird ein Szenario beschrieben, in dem ein MQGet-Knoten in einem Anforderung-Antwort-Nachrichtenfluss verwendet wird. Es wird erklärt, wie der Knoten die Eingabenachrichten (gemäß der von Ihnen festgelegten LocalEnvironment-Baumstruktur und Eingabeparameter) verarbeitet, um die Ausgabenachrichten zu erstellen.

Bei einem Anforderung-Antwort-Nachrichtenfluss handelt es sich um eine spezielle Form einer Punkt-zu-Punkt-Anwendung. Unter Anwendungskommunikationsmodelle finden Sie eine allgemeine Beschreibung dieser Anwendungen. Der folgende Abschnitt enthält ein Beispiel für einen Anforderung-Antwort-Nachrichtenfluss: Sie können Beispiele nur anzeigen, wenn Sie das Information Center verwenden, das im Message Brokers Toolkit integriert ist.

Ein MQGet-Knoten kann überall im Nachrichtenfluss eingefügt werden. Dies gilt auch für einen Nachrichtenfluss, der ein Anforderung-Antwort-Szenario implementiert. Der Knoten empfängt an seinem Eingabeterminal eine Eingabenachricht vom vorhergehenden Knoten im Nachrichtenfluss. Er gibt einen MQGET-Aufruf aus, um eine Nachricht aus der in seinen Eigenschaften konfigurierten WebSphere MQ-Warteschlange abzurufen, und erstellt eine daraus resultierende Nachrichtenbaumstruktur. Schließlich verwendet er die Eingabe- und die Ergebnisbaumstruktur, um eine Ausgabebaumstruktur zu erstellen, die je nach Konfiguration des Knotens und abhängig vom Ergebnis der MQGET-Operation entweder an sein Ausgabeterminal, das Warnungsterminal oder das Fehlerterminal weitergegeben wird.

Handhabung der LocalEnvironment-Daten durch den MQGet-Knoten

Der MQGet-Knoten überprüft die LocalEnvironment-Baumstruktur, die vom vorhergehenden Knoten weitergegeben wird. Er verwendet den MQGMO-bezogenen Inhalt (MQGMO = MQ Get Message Options, MQ-Optionen für Nachrichtenabruf) sowie den MQMD (MQ Message Descriptor-Header) und aktualisiert die LocalEnvironment-Daten:

  • Der Knoten liest die MQGMO-Struktur aus ${inputMQParmsLocation}.MQGMO.*.
  • Er kopiert die WebSphere MQ-Beendigungs- und -Ursachencodes in ${outputMQParmsLocation}.CC und ${outputMQParmsLocation}.RC.
  • Der Knoten schreibt die vollständigen MQGMO-Daten, die für den MQGET-Aufruf verwendet werden, in ${outputMQParmsLocation}.MQGMO, wenn ${inputMQParmsLocation}.MQGMO in der Eingabebaumstruktur enthalten ist.
  • Der Knoten legt die an den MQGET-Aufruf übergebenen MQMD-Daten (mit den in der Eingabenachricht angegebenen oder von dem Knoten generierten Werten) an dieser Adresse ab, wobei alle dort bereits vorhandenen Daten gelöscht werden.

Setzen Sie auf der Registerkarte Anforderungseigenschaften in der Eigenschaft Position für MQ-Eingabeparameter des MQGet-Knotens den Wert auf ${inputMQParmsLocation}.

Setzen Sie auf der Registerkarte Ergebniseigenschaften in der Eigenschaft Position für MQ-Ausgabeparameter des MQGet-Knotens den Wert auf ${outputMQParmsLocation}.

Weitere Informationen zu diesen Eigenschaften finden Sie im Abschnitt MQGet-Knoten.

Zusammenfassung:
${inputMQParmsLocation}
  • QueueName: Optionale Überschreibung der Eigenschaft Name der Warteschlange des MQGet-Knotens
  • InitialBufferSize: Optionale Überschreibung der Eigenschaft Anfängliche Puffergröße des MQGet-Knotens
  • MQGMO.*: Optionale MQGET-Nachrichtenoptionen, die vom MQGet-Knoten verwendet werden
${outputMQParmsLocation}
  • CC: Beendigungscode des MQGET-Aufrufs
  • RC: Ergebniscode des MQGET-Aufrufs
  • MQGMO.*: MQGET-Nachrichtenoptionen, die verwendet werden, falls sie in ${inputMQParmsLocation} enthalten sind
  • MQMD: nicht analysierter MQ-Nachrichtendeskriptor für empfangene Nachrichten1
Sie können den MQMD-Header (z. B. mit ESQL) analysieren, wobei ${outputMQParmsLocation} den Wert 'LocalEnvironment.MQ.GET' hat:
DECLARE ptr REFERENCE TO OutputLocalEnvironment.MyMQParms;
CREATE FIRSTCHILD OF ptr DOMAIN('MQMD') PARSE(InputLocalEnvironment.MQ.GET.MQMD)

Erstellung der MQMD-Daten für den MQGET-Aufruf

  • Es wird ein Standard-MQMD vorbereitet. Weitere Informationen zum MQMD finden Sie im Abschnitt Application Programming Reference des WebSphere MQ Version 6 Information Center online oder im WebSphere MQ Version 5.3-Handbuch auf der Webseite der Bibliothek zu WebSphere MQ.
  • Wenn Sie keinen Eingabe-MQMD angeben, wird der Standard-MQMD verwendet.
  • Wenn Sie einen Eingabe-MQMD angeben, wird der Standard-MQMD mit folgenden Änderungen verwendet:
    • Ist die Eigenschaft Vollständigen Eingabe-MQMD verwenden definiert, werden alle angegebenen MQMD-Felder aus dem Eingabe-MQMD in den Standard-MQMD kopiert.
    • Wenn die Eigenschaft Vollständige Eingabe-MQMD verwenden nicht definiert ist und die Eigenschaften Abruf nach Nachrichten-ID bzw. Abruf nach Korrelations-ID ausgewählt sind, werden die jeweiligen IDs aus dem Eingabe-MQMD in den Standard-MQMD kopiert.

Das folgende Diagramm zeigt, wie der MQGet-Knoten den MQMD, der im Aufruf an WebSphere MQ verwendet werden soll, erstellt:

Das Diagramm wird oben im Text beschrieben.

Erstellung der Ausgabenachrichtenbaumstruktur

Das folgende Diagramm zeigt im Überblick, wie die Ausgabenachrichtenbaumstruktur vom MQGet-Knoten erstellt wird, indem die Eingabebaumstruktur aus dem vorherigen Knoten mit der Ergebnisbaumstruktur aus dem MQGET-Aufruf kombiniert wird:

Das Diagramm wird oben im Text beschrieben.

In diesem Beispiel werden die Eigenschaften des MQGet-Knotens wie in der folgenden Tabelle dargestellt konfiguriert.
Eigenschaft Aktion
Nachricht kopieren Gesamte Nachricht kopieren
Generierungsmodus Nachricht
Position für Ausgabedaten OutputRoot.XMLNS.A
Position für Ergebnisdaten ResultRoot.XMLNS.C
Der MQGet-Knoten konstruiert die Ausgabebaumstruktur in folgendem Ablauf:
  1. Die gesamte Eingabebaumstruktur wird in die Ausgabebaumstruktur kopiert, einschließlich des XML-Zweiges mit dem untergeordneten Element A und dem A untergeordneten Element B.
  2. Das untergeordnete Element C und das C untergeordnete Element D im XML-Zweig werden aus der Ergebnisbaumstruktur an Position OutputRoot.XMLNS.A in der Ausgabebaumstruktur abgelegt. Der bisherige Inhalt von A (Werte und untergeordnete Elemente) wird gelöscht und durch den Inhalt von C ersetzt, einschließlich aller Werte und untergeordneten Elemente (in diesem Fall des untergeordneten Elements D).
  3. Die Position in der Ausgabebaumstruktur behält den Namen A.

Das folgende Diagramm zeigt dieses Verhalten:

Das Diagramm wird oben im Text beschrieben.

Im Abschnitt Beispiele für Nachrichtenbaumstrukturen des MQAbrufknotens finden Sie einige Beispiele für Nachrichtenbaumstrukturen, die vom MQGet-Knoten gemäß den oben beschriebenen Regeln erstellt werden.

Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:28:30

ac34680_