WS-Manager-Aliasnamen und -Cluster
Verwenden Sie WS-Manager-Aliasnamen, um den Namen von Warteschlangenmanagern zu verdecken, wenn Nachrichten an einen Cluster gesendet oder aus einem Cluster gesendet werden, und die Nachrichten, die an einen Cluster gesendet werden, in Lastausgleichsnachrichten gesendet werden
RNAME erstellt werden, haben fünf Verwendungen:- Namen des WS-Managers beim Senden von Nachrichten neu zuordnen
- Ein Warteschlangenmanager-Aliasname kann verwendet werden, um den in einem MQOPEN -Aufruf angegebenen Warteschlangenmanagernamen einem anderen Warteschlangenmanager neu zuzuordnen. Es kann sich um einen Cluster-WS-Manager handeln. Beispielsweise kann ein Warteschlangenmanager die Definition des WS-Manager-Aliasnamens haben:
DEFINE QREMOTE(YORK) RNAME(' ') RQMNAME(CLUSQM)YORKkann als Aliasname für den WS-ManagerCLUSQMverwendet werden. Wenn eine Anwendung auf dem Warteschlangenmanager, die diese Definition vorgenommen hat, eine Nachricht an den WarteschlangenmanagerYORKstellt, löst der lokale WS-Manager den Namen inCLUSQMauf. Wenn der lokale WS-Manager nichtCLUSQMgenannt wird, wird die Nachricht in die Clusterübertragungswarteschlange gestellt, die inCLUSQMverschoben werden soll. Außerdem ändert er den Übertragungsheader, umCLUSQManstelle vonYORKzu verwenden.Hinweis: Die Definition gilt nur für den Warteschlangenmanager, der sie erstellt. Um den Aliasnamen für den gesamten Cluster zugänglich zu machen, müssen Sie das AttributCLUSTERzur Definition der fernen Warteschlange hinzufügen. Anschließend werden Nachrichten von anderen Warteschlangenmanagern, die fürYORKbestimmt waren, anCLUSQMgesendet. - Ändern oder Angeben der Übertragungswarteschlange beim Senden von Nachrichten
- Das Aliasing kann verwendet werden, um einen Cluster in ein Nicht-Clustersystem zu verknüpfen. Beispielsweise können Warteschlangenmanager im Cluster
ITALYmit dem WarteschlangenmanagerPALERMOkommunizieren, der sich außerhalb des Clusters befindet. Für die Kommunikation muss einer der WS-Manager im Cluster als Gateway fungieren. Geben Sie im Gateway-WS-Manager den folgenden Befehl aus:DEFINE QREMOTE(ROME) RNAME(' ') RQMNAME(PALERMO) XMITQ(X) CLUSTER(ITALY)Der Befehl ist eine Aliasdefinition des Warteschlangenmanagers. Sie definiert und macht
ROMEals Warteschlangenmanager bekannt, über den Nachrichten von jedem WS-Manager im ClusterITALYmit mehreren Hops zu ihrem Ziel inPALERMOgelangen können. Nachrichten, die in eine Warteschlange gestellt werden, die mit dem Namen des Warteschlangenmanagers, der aufROMEgesetzt ist, geöffnet wurde, werden mit der WS-Manager-Aliasdefinition an den Warteschlangenmanager-Warteschlangenmanager gesendet. Dort werden die Nachrichten in die ÜbertragungswarteschlangeXgestellt und von Nicht-Clusterkanälen in den WarteschlangenmanagerPALERMOverschoben.Die Auswahl des Namens
ROMEin diesem Beispiel ist nicht signifikant. Die Werte fürQREMOTEundRQMNAMEkönnen beide identisch sein. - Bestimmung des Ziels beim Empfangen von Nachrichten
Wenn ein WS-Manager eine Nachricht empfängt, extrahiert er den Namen der Zielwarteschlange und des Warteschlangenmanagers aus dem Übertragungsheader. Sie sucht nach einer WS-Manager-Aliasnamendefinition mit demselben Namen wie der Warteschlangenmanager im Übertragungsheader. Wenn er eine findet, ersetzt er den Warteschlangenmanagernamen im Übertragungsheader durch den
RQMNAMEaus der WS-Manager-Aliasdefinition.Es gibt zwei Gründe für die Verwendung eines WS-Manager-Aliasnamens auf diese Weise:- Nachrichten an einen anderen WS-Manager zu leiten
- Um den Namen des Warteschlangenmanagers zu ändern, der mit dem lokalen WS-Manager identisch sein soll
- WS-Manager-Aliasnamen in einem Gateway-WS-Manager verwenden, um Nachrichten zwischen Warteschlangenmanagern in verschiedenen Clustern weiterzuleiten.
Eine Anwendung kann mithilfe eines WS-Manager-Aliasnamens eine Nachricht an eine Warteschlange in einem anderen Cluster senden. Die Warteschlange muss keine Clusterwarteschlange sein. Die Warteschlange ist in einem Cluster definiert. Die Anwendung ist mit einem WS-Manager in einem anderen Cluster verbunden. Ein Gateway-WS-Manager verbindet die beiden Cluster. Wenn die Warteschlange nicht als Cluster-Cluster definiert ist, muss die Anwendung die Warteschlange unter Verwendung des Warteschlangennamens und des Aliasnamens eines Cluster-WS-Managers öffnen, damit die korrekte Weiterleitung erfolgt. Ein Beispiel für eine Konfiguration finden Sie unter Erstellen von zwei sich überschneidenden Clustern mit einem Gateway-Queue-Manager, dem der in Abbildung 1 dargestellte Antwortnachrichtenfluss entnommen ist.
Das Diagramm zeigt den Pfad, den die Antwortnachricht zurück zu einer temporären dynamischen Warteschlange mit dem Namen
RQnimmt. Die Serveranwendung, die mitQM3verbunden ist, öffnet die Antwortwarteschlange unter Verwendung des WarteschlangenmanagernamensQM2. Der Name des WarteschlangenmanagersQM2ist als gruppierter Warteschlangenmanager-Alias auf dem Gateway-WarteschlangenmanagerQM1definiert.QM3leitet die Antwortnachricht an den Gateway-WarteschlangenmanagerQM1weiter.QM1leitet die Nachricht anQM2weiter.Abb. 1. Verwenden eines Warteschlangenmanager-Aliasnamens, um die Antwortnachricht an einen anderen Cluster zurückzugeben 
Die Art und Weise, wie das Routing funktioniert, ist wie folgt. Jeder Warteschlangenmanager in jedem Cluster hat eine Warteschlangenmanager-Aliasdefinition auf dem Gateway-Warteschlangenmanager
QM1. Die Aliasnamen werden in allen Clustern gruppiert. Die grauen gestrichelten Pfeile von jedem der Aliasnamen zu einem Warteschlangenmanager zeigen, dass jeder Warteschlangenmanager-Aliasname in mindestens einem der Cluster in einen echten Warteschlangenmanager aufgelöst wird. In diesem Fall wird der AliasnameQM2sowohl in ClusterCL1als auch inCL2zusammengefasst und in den realen WarteschlangenmanagerQM2inCL1aufgelöst. Die Serveranwendung erstellt die Antwortnachricht unter Verwendung des Namens der Empfangswarteschlange für AntwortenRQund des Namens des AntwortwarteschlangenmanagersQM2. Die Nachricht wird an den Gateway-WarteschlangenmanagerQM1weitergeleitet, da die Warteschlangenmanager-AliasdefinitionQM2aufQM1im ClusterCL2definiert ist und der WarteschlangenmanagerQM2nicht im ClusterCL2enthalten ist. Da die Nachricht nicht an den Zielwarteschlangenmanager gesendet werden kann, wird sie an den Warteschlangenmanager gesendet, der die Aliasdefinition enthält.Der Gateway-Warteschlangenmanager
QM1stellt die Nachricht in die Cluster-Übertragungswarteschlange zur Übertragung anQM2. Der Gateway-WarteschlangenmanagerQM1leitet die Nachricht anQM2weiter, da die Alias-Definition des Warteschlangenmanagers aufQM1fürQM2QM2als tatsächlichen Ziel-Warteschlangenmanager definiert. Die Definition ist nicht kreisförmig, da die Aliasdefinitionen nur auf reale Definitionen verweisen können. Der Aliasname kann nicht auf sich selbst verweisen. Die tatsächliche Definition wird vom Gateway-Warteschlangen-ManagerQM1aufgelöst, da sich sowohlQM1als auchQM2im selben Cluster befinden,CL1. Der Gateway-WarteschlangenmanagerQM1ermittelt die Verbindungsinformationen fürQM2aus dem Repository fürCL1und leitet die Nachricht anQM2weiter. Damit die Nachricht vonQM1umgeleitet werden kann, muss die Serveranwendung die Antwortwarteschlange geöffnet haben, in der die Option DEFBIND aufMQBND_BIND_NOT_FIXEDgesetzt ist. Wenn die Serveranwendung die Antwortwarteschlange mit der OptionMQBND_BIND_ON_OPENgeöffnet hatte, wird die Nachricht nicht weitergeleitet und wird in einer Warteschlange für nicht zustellbare Nachrichten nicht mehr angezeigt.- Die Verwendung eines Warteschlangenmanagers als Gateway in den Cluster für die Lastverteilung von Nachrichten von außerhalb des Clusters aus.
Sie definieren eine Warteschlange mit dem Namen
EDINBURGHin mehr als einem Warteschlangenmanager im Cluster. Sie möchten, dass der Clustering-Mechanismus die Auslastung für Nachrichten, die von außerhalb des Clusters in diese Warteschlange einreisen, ausgleichen soll.Ein Warteschlangenmanager von außerhalb des Clusters benötigt eine Übertragungswarteschlange und einen Senderkanal zu einem WS-Manager im Cluster. Diese Warteschlange wird als Gateway-WS-Manager bezeichnet. Um den standardmäßigen Lastausgleichsmechanismus nutzen zu können, muss eine der folgenden Regeln gelten:- Der Gateway-WS-Manager darf keine Instanz der
EDINBURGH-Warteschlange enthalten. - Der Gateway-WS-Manager gibt
CLWLUSEQ(ANY)aufALTER QMGRan.
Ein Beispiel für den Arbeitslastausgleich von außerhalb eines Clusters finden Sie unter Konfigurieren des Arbeitslastausgleichs von außerhalb eines Clusters
- Der Gateway-WS-Manager darf keine Instanz der