記録および再生に複数の統合ノードおよび複数の独立統合サーバーを使用する

記録および再生トポロジーには、複数の統合ノードまたは複数の独立統合サーバーを含めることができます。 メッセージ・フローをデプロイするときと、それらのメッセージ・フローからのデータをデータベースに記録するときで、使用する統合ノードまたは統合サーバーが異なる場合は、統合ノードまたは統合サーバーの間にパブリッシュ/サブスクライブ関係を構成する必要があります。

始める前に

概念トピック「 記録および再生」をお読みください。

このタスクの概要

データの記録元となるメッセージ・フローをデプロイするときと、データベースからデータを表示するときとで、それぞれ異なる統合ノードまたは統合サーバーを使用できます。 データの表示および再生に使用する統合ノードまたは統合サーバーは、データをデータベースに記録するために使用される統合ノードまたは統合サーバーと対話しません。 ただし、メッセージ・フローをデプロイする先の統合ノードまたは統合サーバーが、記録用統合ノードまたは統合サーバーと異なる場合、それらの統合ノードまたは統合サーバー間でパブリッシュ/サブスクライブの関係をセットアップする必要があります。

データの記録は、パブリッシュ/サブスクライブ・モデルに基づいています。 ユーザーは、統合ノードまたは統合サーバーにデプロイしたメッセージ・フローのモニターを構成します。例えば、デプロイ先は統合サーバー MONSERV とします。 これは、モニター・イベントを構成するときに、指定したトピックにパブリッシュします。 このトピックは、記録するデータのソースを示します。 server.conf.yaml ファイルを更新するときに、このトピックを指定します。 データ記録の構成 を参照してください。

記録は、任意の統合ノードまたは統合サーバーで行うことができますが、表示と再生には同じ統合サーバーを使用する必要があります。

このシナリオでは、MONSERV はモニター・トピックでパブリッシュし、RECSERV はそのトピックにサブスクライブします。 MONSERV がキュー・マネージャー MONQM で実行され、RECSERV がキュー・マネージャー RECQM で実行されている場合、MONQMRECQM の間でパブリッシュ/サブスクライブの関係を構成する必要があります。

クラスター関係を作成するのか、2 つのキュー・マネージャー間で階層型のパブリッシュ/サブスクライブ関係を作成するのかを選択できます。 キュー・マネージャーを頻繁にトポロジーに追加する予定の場合、クラスター関係の方が適しています。 IBM® MQ のオンライン製品ドキュメントにある 「パブリッシュ/サブスクライブ・トポロジー」 に関する項目をご覧ください。 この例では、階層関係を使用しています。 例において、単一引用符で囲まれた値は、任意の値で置き換えることができますが、小文字を使用する場合は引用符を外さないでください。 以下のステップを実行します。

手順

  1. MONQMRECQMの間の Point-to-Point チャネル接続を確立します。
    1. MONQMをホストするサーバー上のコマンド行で、 runmqsc MONQM と入力します。
    2. メッセージを RECQMに転送するときに使用する MONQM の伝送キューを定義します。
      DEFINE QLOCAL('RECQM') USAGE(XMITQ) TRIGGER TRIGDATA('MONQM.TO.RECQM') INITQ(SYSTEM.CHANNEL.INITQ)
    3. 送信側チャネルを定義します。
      DEFINE CHANNEL('MONQM.TO.RECQM') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('RECQM.SERVER') XMITQ(XMIT)
        DESCR('Sender channel from MONQM to RECQM')
      RECQM.SERVER は、RECQM をホストするサーバーの名前です。
    4. 受信側チャネルを定義します。
      DEFINE CHANNEL('RECQM.TO.MONQM') CHLTYPE(RCVR) TRPTYPE(TCP)
         DESCR('Receiver channel from RECQM to MONQM')
    5. キュー・マネージャー上のリスナーを構成します。
      DEFINE LISTENER ('LISTENER.TCP') TRPTYPE(TCP) PORT(PORT) CONTROL(QMGR)
      PORT は、リスナーが listen するポート番号です。
    6. リスナーを始動します。 START LISTENER('LISTENER.TCP') を入力します
    7. END を入力して、 RUNMQSC セッションを終了します。
    8. 次に、 RECQMを構成します。 RECQM をホストするサーバー上のコマンド行で、次のコマンドを入力します。
      runmqsc RECQM
      
      DEFINE QLOCAL('MONQM') USAGE(XMITQ) TRIGGER TRIGDATA('RECQM.TO.MONQM') INITQ(SYSTEM.CHANNEL.INITQ)
      DEFINE CHANNEL('RECQM.TO.MONQM') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('MONQM.SERVER') XMITQ(MONQM)
        DESCR('Sender channel from RECQM to MONQM')
      DEFINE CHANNEL('MONQM.TO.RECQM') CHLTYPE(RCVR) TRPTYPE(TCP) 
        DESCR('Receiver channel from MONQM to RECQM')
      DEFINE LISTENER ('LISTENER.TCP') TRPTYPE(TCP) PORT(PORT) CONTROL(QMGR)
      START LISTENER ('LISTENER.TCP')
      END
      
      
      MONQM.SERVERMONQM をホストするサーバーの名前であり、PORT はリスナーが listen するポート番号です。
    パブリッシュ/サブスクライブ用のチャネルの設定に関する詳細については、 IBM MQ のオンライン製品ドキュメントにある「 パブリッシュ/サブスクライブ・トポロジー」 のトピックを参照してください。
  2. キュー・マネージャーのパブリッシュ/サブスクライブ階層を構成します。
    以下の手順を行うことで、RECQMMONQM の子にします。
    1. RECQMをホストするサーバーでコマンド行を開き、次のように入力します。 runmqsc RECQM
    2. RECQMMONQMの子にします。
      ALTER QMGR PARENT('MONQM')
      RECQMMONQM の子にするには、親のキュー・マネージャー名を MONQM と指定する必要があります。
      このキュー・マネージャーのすべてのパブリッシュ/サブスクライブ関係をリストすることで、操作が正常に行われたことを確認します。
      DIS PUBSUB TYPE(ALL)
      出力には、MONQMRECQM の親になったことが示されます。
      AMQ8723: Display pub/sub status details.
         QMNAME(RECQM)                           TYPE(LOCAL)
      AMQ8723: Display pub/sub status details.
         QMNAME(MONQM)                           TYPE(PARENT)
    3. END を入力して、 RECQMRUNMQSC セッションを終了します。
    4. オプション: RECQMの場合と同様、MONQMRUNMQSC セッションを開始し、パブリッシュ/サブスクライブのタイプを表示します。 出力には、RECQMMONQM の子になったことが示されます。

次のタスク

記録および再生トポロジーのパフォーマンスへの影響を考慮します。 データ記録の調整を参照してください。

データを記録するためのステップを実行します。 データの記録を参照してください。