Ändern der Standardeinstellung in separate Clusterübertragungswarteschlangen, um den Nachrichtendatenverkehr zu isolieren
Sie können die Standardweise ändern, in der ein WS-Manager Nachrichten für eine Clusterwarteschlange oder ein Topic in einer Übertragungswarteschlange speichert. Wenn Sie den Standardwert ändern, können Sie Clusternachrichten auf einem Gateway-Warteschlangenmanager isolieren.
Vorbereitungen
Der Gateway-Warteschlangenmanager muss sich unter IBM® MQbefinden.
Um die Architektur mit mehreren Clusterwarteschlangen zu implementieren, muss sich Ihr Gateway-Warteschlangenmanager in IBM MQbefinden. Alle für die Verwendung mehrerer Clusterübertragungswarteschlangen verwendeten Warteschlangen müssen den Standardwarteschlangentyp der Clusterübertragung im Gateway-Warteschlangenmanager ändern. Ändern Sie den Wert des Warteschlangenmanagerattributs DEFCLXQ unter QM1 von SCTQ in CHANNEL . siehe Abbildung 1. Das Diagramm zeigt einen Nachrichtenfluss. Für Datenflüsse zu anderen Warteschlangenmanagern oder zu anderen Clustern erstellt der Warteschlangenmanager zusätzliche permanente dynamische Clusterübertragungswarteschlangen. Jeder Clustersenderkanal überträgt Nachrichten aus einer anderen Clusterübertragungswarteschlange.
Die Änderung wird nicht sofort wirksam, es sei denn, Sie verbinden den Gateway-WS-Manager zum ersten Mal mit Clustern. Die Task enthält Schritte für den typischen Fall, dass eine Änderung an einer vorhandenen Konfiguration verwaltet wird. Um einen Warteschlangenmanager so einzurichten, dass er separate Clusterübertragungswarteschlangen verwendet, wenn er zum ersten Mal einem Cluster beitritt; siehe Warteschlangenmanager zu einem Cluster hinzufügen: separate Übertragungswarteschlangen.
Abb. 1. Die Client-Server-Anwendung, die in Hub-und Spoke-Architektur implementiert ist, mit separaten Clusterübertragungswarteschlangen auf dem Gateway-Warteschlangenmanager.
Verfahren
Ändern Sie den Gateway-WS-Manager, um separate Clusterübertragungswarteschlangen zu verwenden.
*... On QM1
ALTER QMGR DEFCLXQ(CHANNEL)
Wechseln Sie zu den separaten Clusterübertragungswarteschlangen.
Jeder Clustersenderkanal, der keine Switches ausführt, um separate Clusterübertragungswarteschlangen zu verwenden, wenn er als Nächstes gestartet wird.
Um die aktiven Kanäle umzuschalten, müssen Sie entweder den Warteschlangenmanager erneut starten oder die folgenden Schritte ausführen:
Listen Sie die Clustersenderkanäle auf, die mit SYSTEM.CLUSTER.TRANSMIT.QUEUEausgeführt werden.
*... On QM1
DISPLAY CHSTATUS(*) WHERE(XMITQ EQ 'SYSTEM.CLUSTER.TRANSMIT.QUEUE')
Die Antwort ist eine Liste der Kanalstatusberichte:
AMQ8417: Display Channel Status details.
CHANNEL(CL1.QM2) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1412)) CURRENT
RQMNAME(QM2) STATUS(RUNNING)
SUBSTATE(MQGET) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
AMQ8417: Display Channel Status details.
CHANNEL(CL2.QM3) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1413)) CURRENT
RQMNAME(QM3) STATUS(RUNNING)
SUBSTATE(MQGET) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
AMQ8417: Display Channel Status details.
CHANNEL(CL2.QM5) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1415)) CURRENT
RQMNAME(QM5) STATUS(RUNNING)
SUBSTATE(MQGET) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
AMQ8417: Display Channel Status details.
CHANNEL(CL1.QM4) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1414)) CURRENT
RQMNAME(QM4) STATUS(RUNNING)
SUBSTATE(MQGET) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
Kanäle stoppen, die ausgeführt werden
Führen Sie für jeden Kanal in der Liste den folgenden Befehl aus:
*... On QM1
STOP CHANNEL(ChannelName)
Dabei ist ' ChannelName jedes von ' CL1.QM2,
CL1.QM4, CL1.QM3, CL1.QM5.
Die Antwort ist, dass der Befehl akzeptiert wird:
AMQ8019: Stop IBM MQ channel accepted.
Überwachen, welche Kanäle gestoppt sind
*... On QM1
DISPLAY CHSTATUS(*) WHERE(XMITQ EQ 'SYSTEM.CLUSTER.TRANSMIT.QUEUE')
Die Antwort ist eine Liste der Kanäle, die noch aktiv sind, und Kanäle, die gestoppt wurden:
AMQ8417: Display Channel Status details.
CHANNEL(CL1.QM2) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1412)) CURRENT
RQMNAME(QM2) STATUS(STOPPED)
SUBSTATE( ) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
AMQ8417: Display Channel Status details.
CHANNEL(CL2.QM3) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1413)) CURRENT
RQMNAME(QM3) STATUS(STOPPED)
SUBSTATE( ) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
AMQ8417: Display Channel Status details.
CHANNEL(CL2.QM5) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1415)) CURRENT
RQMNAME(QM5) STATUS(STOPPED)
SUBSTATE( ) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
AMQ8417: Display Channel Status details.
CHANNEL(CL1.QM4) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1414)) CURRENT
RQMNAME(QM4) STATUS(STOPPED)
SUBSTATE( ) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
Starten Sie jeden gestoppten Kanal.
Führen Sie diesen Schritt für alle Kanäle aus, die ausgeführt wurden. Wenn ein Kanal nicht gestoppt wird, können Sie den Befehl STOP CHANNEL mit der Option FORCE erneut ausführen. Ein Beispiel für die Einstellung der Option FORCE wäre, wenn der Kanal nicht gestoppt wird, und Sie können den anderen Warteschlangenmanager nicht erneut starten, um den Kanal zu synchronisieren.
*... On QM1
START CHANNEL(CL2.QM5)
Die Antwort ist, dass der Befehl akzeptiert wird:
AMQ8018: Start IBM MQ channel accepted.
Überwachen Sie die Übertragungswarteschlangen, die umgeschaltet werden.
Überwachen Sie das Fehlerprotokoll des Gateway-Warteschlangenmanagers auf die Nachricht AMQ7341The transmission queue for channel CL2.QM3 is SYSTEM.CLUSTER.TRANSMIT. QUEUE|CL2.QM3.
Überprüfen, ob SYSTEM.CLUSTER.TRANSMIT.QUEUE nicht mehr verwendet wird
Die Antwort ist eine Liste der Kanalstatusberichte und die Tiefe von SYSTEM.CLUSTER.TRANSMIT.QUEUE:
AMQ8420: Channel Status not found.
AMQ8409: Display Queue details.
QUEUE(SYSTEM.CLUSTER.TRANSMIT.QUEUE) TYPE(QLOCAL)
CURDEPTH(0)
Kanäle überwachen, die gestartet werden
*... On QM1
DISPLAY CHSTATUS(*) WHERE(XMITQ LK 'SYSTEM.CLUSTER.TRANSMIT.*')
Die Antwort ist eine Liste der Kanäle, die in diesem Fall bereits mit den neuen Standard-Cluster-Übertragungswarteschlangen ausgeführt werden:
AMQ8417: Display Channel Status details.
CHANNEL(CL1.QM2) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1412)) CURRENT
RQMNAME(QM2) STATUS(RUNNING)
SUBSTATE(MQGET)
XMITQ(SYSTEM.CLUSTER.TRANSMIT.CL1.QM2)
AMQ8417: Display Channel Status details.
CHANNEL(CL2.QM3) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1413)) CURRENT
RQMNAME(QM3) STATUS(RUNNING)
SUBSTATE(MQGET)
XMITQ(SYSTEM.CLUSTER.TRANSMIT.CL2.QM3)
AMQ8417: Display Channel Status details.
CHANNEL(CL2.QM5) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1415)) CURRENT
RQMNAME(QM5) STATUS(RUNNING)
SUBSTATE(MQGET)
XMITQ(SYSTEM.CLUSTER.TRANSMIT.CL2.QM5)
AMQ8417: Display Channel Status details.
CHANNEL(CL1.QM4) CHLTYPE(CLUSSDR)
CONNAME(127.0.0.1(1414)) CURRENT
RQMNAME(QM4) STATUS(RUNNING)
SUBSTATE(MQGET)
XMITQ(SYSTEM.CLUSTER.TRANSMIT.CL1.QM4)
Nächste Schritte
Testen Sie die automatisch definierte Clusterübertragungswarteschlange, indem Sie eine Nachricht von QM2 an Q1 unter QM3 senden und den Warteschlangennamen mit der Warteschlangenaliasdefinition Q1A auflösen.
Führen Sie das Beispielprogramm amqsput unter QM2 aus, um eine Nachricht einzureihen.
C:\IBM\MQ>amqsput Q1A QM2
Sample AMQSPUT0 start
target queue is Q1A
Sample request message from QM2 to Q1 using Q1A
Sample AMQSPUT0 end
Führen Sie das Beispielprogramm amqsget aus, um die Nachricht von Q1 unter QM3 abzurufen
C:\IBM\MQ>amqsget Q1 QM3
Sample AMQSGET0 start
message <Sample request message from QM2 to Q1 using Q1A>
no more messages
Sample AMQSGET0 end
Überlegen Sie, ob die Sicherheit durch die Konfiguration der Sicherheit für die Clusterwarteschlangen auf den Warteschlangenmanagern, in denen Nachrichten für die Clusterwarteschlangen stammen, neu konfiguriert werden soll.