Ä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

  1. Der Gateway-Warteschlangenmanager muss sich unter IBM® MQbefinden.
  2. Erstellen Sie die überlappenden Cluster, die in Client-Server-Anwendung in Hub-and-Spoke-Architektur unter Verwendung von IBM MQ in Erstellen von zwei überlappenden Clustern mit einem Gateway-Warteschlangenmanager gezeigt werden, indem Sie die Schritte in dieser Aufgabe ausführen.

Informationen zu dieser Task

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.
Das Diagramm zeigt zwei überlappende Cluster, die durch einen Gateway-Warteschlangenmanager verbunden sind. Eine Nachricht fließt von einer Anwendung in einem Cluster in den anderen Cluster über die Übertragungswarteschlange SYSTEM.CLUSTER.TRANSMIT.CL2.QM3 im Gateway-WS-Manager. Die
Nachricht wird von einer Aliaswarteschlange im Gateway-Warteschlangenmanager weitergeleitet. Die Definition der Aliaswarteschlange ist in allen Clustern gruppiert. Sie richtet sich an eine Warteschlange in einem der Cluster. Warteschlangenmanager-Aliasnamen im Gateway-Warteschlangenmanager verweisen auf die realen Warteschlangenmanager in jedem Cluster.

Verfahren

  1. Ändern Sie den Gateway-WS-Manager, um separate Clusterübertragungswarteschlangen zu verwenden.
    *... On QM1
    ALTER QMGR DEFCLXQ(CHANNEL)
    
  2. 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:

    1. 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)

    2. 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.
    3. Ü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)

    4. 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.
    5. Ü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 .

    6. Überprüfen, ob SYSTEM.CLUSTER.TRANSMIT.QUEUE nicht mehr verwendet wird
      *... On QM1
      DISPLAY CHSTATUS(*) WHERE(XMITQ EQ 'SYSTEM.CLUSTER.TRANSMIT.QUEUE')
      DISPLAY QUEUE(SYSTEM.CLUSTER.TRANSMIT.QUEUE) CURDEPTH
      

      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)

    7. 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

  1. 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.
    1. 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

    2. 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

  2. Ü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.