Diese Seite gibt eine Einführung in die Verwendung eines MQAbrufknotens in einem Anforderung-Antwort-Nachrichtenfluss (request-response). Es wird beschrieben, wie der Knoten die Eingabenachrichten verarbeitet (gemäß der von Ihnen festgelegten LocalEnvironment- und Eingabeparameter), um die Ausgabenachrichten zu erstellen.
Ein Anforderung-Antwort-Nachrichtenfluss zwischen zwei Anwendungen ermöglicht einer der Anwendungen, Nachrichten von der anderen anzufordern. Diese Art von Nachrichtenfluss wird in der nachfolgenden Abbildung veranschaulicht:
.
In der Abbildung stellt die anfordernde Anwendung eine Nachricht in die "Anforderungseingabewarteschlange" der antwortenden Anwendung ein. Anschließend verarbeitet die antwortende Anwendung die Nachricht und sendet eine Antwort an die "Antwortwarteschlange", die in der ursprünglichen Nachricht der anfordernden Anwendung angegeben wurde.
Wenn eine dieser Anwendungen ersetzt oder erweitert wird und die andere Anwendung unverändert bleibt, müssen die Nachrichten zwischen den beiden Anwendungen umgewandelt werden. Dazu kann der Broker zwischen die Anwendungen eingefügt werden (siehe nachfolgende Abbildung):
Nun wird ein Aliasname einer Warteschlange oder eine ähnliche Einheit so konfiguriert, dass die anfordernde Anwendung ihre Anforderungsnachricht in die Eingabewarteschlange des Nachrichtenflusses des Brokers "Koordinierte Anforderungsantwort" einstellt. Im vorangegangenen Beispiel wurde diese Nachricht direkt in die Eingabewarteschlange der antwortenden Anwendung eingestellt. Der Nachrichtenfluss "Koordinierte Anfrage-Antwort" wandelt die Nachricht in ein Format um, das die antwortende Anwendung unterstützt, und leitet sie an ihre Eingabewarteschlange weiter. Außerdem speichert er die ursprünglichen Details der Warteschlange für Antwortnachrichten der anfordernden Anwendung und stellt sie als Antwortnachricht der antwortenden Anwendung wieder her. Somit kann sie fehlerfrei zurück an die anfordernde Anwendung gesendet werden.
Ein MQAbrufknoten kann überall in einen Nachrichtenfluss gestellt werden und empfängt an seinem Eingabeterminal eine vom vorangehenden Knoten übergebene Eingabebaumstruktur. Anschließend erstellt er mit der aus der konfigurierten WebSphere MQ-Warteschlange abgerufenen Nachricht eine Ergebnisbaumstruktur. 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 GET-Operation entweder an sein Ausgabeterminal, das Warnungsterminal oder das Fehlerterminal weitergegeben wird.
Weitere Details zum Erstellen eines Nachrichtenflusses finden Sie in folgendem Beispiel: Beispielprogramm 'Coordinated Request Reply'.
Die vom vorangegangenen Knoten weitergegebene lokale Umgebung wird vom MQAbrufknoten gelesen und aktualisiert.
Der Wert '${inputMQParmsLocation}' wurde auf der Registerkarte Anforderungseigenschaften in der Eigenschaft Position für MQ-Eingabeparameter des MQAbrufknotens eingerichtet.
Der Wert '${outputMQParmsLocation}' wurde auf der Registerkarte Ergebniseigenschaften in der Eigenschaft Position für MQ-Ausgabeparameter des MQAbrufknotens eingerichtet.
Ausführliche Informationen zu diesen Eigenschaften finden Sie unter MQAbrufknoten.
Das folgende Diagramm zeigt etwas ausführlicher, wie der MQAbrufknoten den MQMD, der im Aufruf an WebSphere MQ verwendet werden soll, erstellt:
Das folgende Diagramm zeigt im Überblick, wie die Ausgabenachrichtenbaumstruktur erstellt wird, indem die Eingabebaumstruktur aus dem vorherigen Knoten mit der Ergebnisbaumstruktur aus dem MQGet-Aufruf kombiniert wird:
Es folgen einige Beispiele, wie Nachrichtenbaumstrukturen gemäß den oben beschriebenen Regeln erstellt werden.
Die Nachricht ist wie folgt aufgebaut: | MQGet gibt folgende Nachricht zurück: |
---|---|
|
![]()
![]() |
Bei folgenden Einstellungen | ist die erstellte Ausgabenachricht wie folgt aufgebaut: |
---|---|
|
|
|
Diese Baumstruktur ist das effektive Ergebnis einer Zuordnung von ${resultDataLocation} zu ${outputDataLocation}. Der Wert des Quellenelements wird kopiert, ebenso alle untergeordneten Elemente, einschließlich der Attribute. |
|
In dieser Baumstruktur wird der MQMD für den GET-Aufruf in OutputLocalEnvironment verwendet, weil sich an der Position mit den MQ-Eingabeparametern ein untergeordnetes MQMD-Element befindet. Zwar wird die Eingabebaumstruktur nicht kopiert, die Anwesenheit des MQMD-Elements sorgt jedoch dafür, dass der für den GET-Aufruf verwendete MQMD in der Ausgabebaumstruktur abgelegt wird. |
|
Die Einstellung von copyMessage hat in diesem Fall keine Auswirkung auf die erstellte Ausgabebaumstruktur. |