In diesem Szenario wird ein Web-Service beschrieben, der als Schnittstelle zu einer WebSphere MQ-fähigen Anwendung dient, die die MIME-Domäne verwendet. Im Folgenden sind ein Nachrichtenfluss für dieses Szenario sowie die resultierenden Nachrichtenbaumstrukturen dargestellt.
Wenn eine MIME-Nachricht in den Nachrichtenfluss eintritt, wird der Inhaltstyp (Content-Type) der höchsten Ebene der Nachricht in der Baumstruktur 'HTTPInputHeader' sowie in der logischen MIME-Nachrichtenbaumstruktur gespeichert. Der Broker speichert auch eine Kopie des Inhaltstyps der Nachricht als Wert 'ContentType' in der Unterverzeichnisstruktur mit den Eigenschaften (Properties). Das folgende Diagramm zeigt die Nachrichtenbaumstruktur, nachdem die Nachricht den HTTPEmpfangsknoten verlassen hat:
SET OutputRoot.XML.X.rid = CAST(InputLocalEnvironment.Destination.HTTP.RequestIdentifier AS CHARACTER);Das folgende Diagramm zeigt die Nachrichtenbaumstruktur, nachdem die Nachricht 'Compute1' verlassen hat:
Wenn die Anwendung, von der die MQ-Nachricht empfangen wird, die Nachricht im MIME-Format erwartet, ist eine MIME-Baumstruktur erforderlich. Durch die Erstellung einer neuen MIME-Baumstruktur oder die Änderung und Weitergabe der bestehenden MIME-Baumstruktur kann diese von 'Compute1' bereitgestellt werden. Zur Änderung des Inhaltstyps der Nachricht sollte die Brokereigenschaft 'Content-Type' verwendet werden. Wenn die Brokereigenschaft 'ContentType' geändert wird, wird die Eigenschaft 'Content-Type' in der MIME-Baumstruktur automatisch aktualisiert.
SET OutputLocalEnvironment.Destination.HTTP.RequestIdentifier = CAST(InputRoot.XML.X.rid AS BLOB);'Compute2' kann auch einen expliziten HTTPReplyHeader einrichten.
Wenn die Ausgabedomäne MIME ist, muss für die Ausgabe der Nachricht eine MIME-Baumstruktur erstellt werden. 'Compute2' erstellt entweder eine neue MIME-Nachricht oder ändert und leitet die MIME-Eingabenachricht bedarfsgerecht weiter, um die Ausgabenachricht zu erstellen. Das folgende Diagramm zeigt die Nachrichtenbaumstruktur, nachdem die Nachricht durch 'Compute2' geleitet wurde:
Es sind viele Abwandlungen dieses Szenarios denkbar. Beispielsweise könnte ein einzelner Fluss unter Verwendung eines MQAbrufknotens anstelle des MQEmpfangsknotens erstellt werden; in diesem Fall müsste der HTTP-Korrelator nicht gespeichert werden. Diese Vorgehensweise ist jedoch möglicherweise nicht so skalierbar. Im Beispiel Beispielprogramm 'Coordinated Request Reply' finden Sie weitere Informationen zur Verwendung des MQAbrufknotens.