Antwortnachrichten auf den lokalen Warteschlangenpunkt der anfordernden Anwendung beschränken

Wenn eine JMS-Warteschlange eine SIB-Warteschlange als Antwortwarteschlange identifiziert und diese SIB-Warteschlange mehrere Warteschlangenpunkte hat, können Sie eine JMS-Warteschlange konfigurieren, um die Nachrichten auf den lokalen Warteschlangenpunkt der Anwendung zu beschränken, die in der JMS-Warteschlange referenziert wird. Damit können Sie sicherstellen, dass eine Antwortnachricht an den entsprechenden Warteschlangenpunkt für ein Busmember des Typs "Cluster" gesendet wird.

Eine SIB-Warteschlange hat mehrere Warteschlangenpunkte, wenn ihr Eigentümer ein Busmember des Typs "Cluster" mit mehreren Messaging-Engines ist (gewöhnlich für die Unterstützung der gleichmäßigen Auslastung oder der Skalierbarkeit). Der lokale Warteschlangenpunkt ist der Warteschlangenpunkt in der Messaging-Engine, mit der die Anwendung verbunden ist.

Beispiel: Es wird eine JMS-Warteschlange mit dem Namen "Reply" konfiguriert, um die SIB-Warteschlange zu identifizieren, die als Antwortwarteschlange verwendet werden soll. Die JMS-Warteschlange wird so konfiguriert, dass die Nachrichten auf den lokalen Warteschlangenpunkt beschränkt werden (weitere Einzelheiten finden Sie unter "Zugehörige Tasks").

Abbildung 1. Eine anfordernde JMS-Verbindung stellt eine Verbindung zu einer der Messaging-Engines im Busmember des Typs "Cluster" her
Eine anfordernde JMS-Verbindung stellt eine Verbindung zu einer der Messaging-Engines im Cluster-Bus-Member her.

Das Busmember ist auch Eigner der SIB-Warteschlange, die als Antwortwarteschlange verwendet wird. Somit ist für jede Messaging-Engine ein Warteschlangenpunkt der Antwortwarteschlange konfiguriert.

Die anfordernde Anwendung erstellt eine JMS-Nachricht und setzt das JMSReplyTo-Ziel auf die JMS-Warteschlange "Reply". Die anfordernde Anwendung sendet die Anforderungsnachricht über eine andere JMS-Warteschlange mit dem Namen "Service" an die Warteschlange des Service. (Die Warteschlange "Service" erfordert keine spezielle Konfiguration.) Standardmäßig könnte diese Nachricht an jeden Warteschlangenpunkt gesendet werden, der zu "Service" gehört, obwohl sie gewöhnlich an den lokalen Warteschlangenpunkt gesendet wird. Zur vollständigen Veranschaulichung dieses Beispiels sendet das System die Nachricht jedoch an den anderen Warteschlangenpunkt.

Wenn die Anwendung, die die Anforderungsnachricht sendet, mit einer Messaging-Engine verbunden ist, die ebenfalls einen Warteschlangenpunkt für die konfigurierte, zugrunde liegende SIB-Antwortwarteschlange hat, und die Option aktiviert ist, wird die Identität dieses einzelnen Warteschlangenpunkts den Informationen in der JMSReplyTo-Warteschlange der Nachricht hinzugefügt.

Abbildung 2. Die anfordernde Anwendung sendet die Anforderungsnachricht über eine andere JMS-Warteschlange an die Warteschlange des Service
Die anfordernde Anwendung sendet die Anforderungsnachricht über eine andere JMS-Warteschlange an die Warteschlange des Service.

Die Anforderungsnachricht wird an die Servicewarteschlange "Service" gesendet und vom Service verarbeitet. Nach Abschluss der Verarbeitung sendet der Service eine JMS-Nachricht an die in der Anforderungsnachricht angegebene Antwortwarteschlange (die mit der JMS-Methode "Message.getJMSReplyTo" abgerufen wurde). An diesem Punkt sendet das Messaging-System die Antwortnachricht standardmäßig an einen der Warteschlangenpunkte von "Reply", aber da der Anfordernde der Antwortwarteschlange zugeordnet ist, wird die Antwort an den einzigen Warteschlangenpunkt in der Messaging-Engine gesendet, mit der der Anfordernde verbunden ist.

Abbildung 3. Nachricht wird an den lokalen Warteschlangenpunkt der anfordernden Anwendung gesendet, selbst wenn die antwortende Anwendung einen lokalen Warteschlangenpunkt für die Antwortwarteschlange besitzt
Nachricht wird an den lokalen Warteschlangenpunkt der anfordernden Anwendung gesendet, selbst wenn die antwortende Anwendung einen lokalen Warteschlangenpunkt für die Antwortwarteschlange besitzt

Das System verhält sich so, als hätte die SIB-Warteschlange nur einen einzigen Warteschlangenpunkt. Wenn der Warteschlangenpunkt, dem die Antwort zugeordnet wurde, nicht verfügbar ist, wird die Nachricht nicht an einen anderen Warteschlangenpunkt gesendet.

Dieser Ansatz bietet die folgenden Vorteile:
  • Antwortnachrichten werden immer an den lokalen Warteschlangenpunkt der anfordernden Anwendung zurückgesendet. Dadurch verkürzt sich die Nachrichtenroute.
  • Anfordernde Anwendungen, die mit unterschiedlichen Messaging-Engines im Busmember verbunden sind, können dieselbe JMS-Warteschlangendefinition verwenden. Dies ermöglicht einen dynamischen Lastausgleich im Cluster.
Dieser Ansatz hat die folgenden Nachteile:
  • Wenn die anfordernde Anwendung beabsichtigt, die Verbindung vor dem Empfang der Antwortnachricht zu trennen und anschließend wiederherzustellen, muss die Anwendung wissen, zu welcher Messaging-Engine sie die Verbindung herstellt, und bei der Verbindungswiederherstellung dieselbe Messaging-Engine verwenden. Dies wird in der JMS-Verbindungsfactory erreicht, indem eine Messaging-Engine festgelegt und die JMS-Verbindungsfactory für die Verbindungswiederherstellung verwendet wird. Bei dieser Konfiguration ist ein Lastausgleich ausgeschlossen.
  • Die anfordernde Anwendung muss mit einer Messaging-Engine in dem Busmember verbunden werden, das Eigner der SIB-Antwortwarteschlange ist. Andernfalls ist kein lokaler Warteschlangenpunkt vorhanden, dem Antwortnachrichten zugeordnet werden können, und das System folgt in diesem Fall dem Standardverhalten für die Nachrichtenweiterleitung.

Verbesserung

Die folgende Konfiguration ist erforderlich, um mehrere anfordernde Anwendungen auf alle Messaging-Engines im Busmember zu verteilen und den Anwendungen die Verbindungstrennung und -wiederherstellung zu ermöglichen:
  • Mehrere Verbindungsfactorys, die jeweils einer anderen Messaging-Engine zugeordnet sind
  • Anforderende Anwendungen, die auf die Verbindungsfactorys verteilt werden

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjt0023_
Dateiname:cjt0023_.html