記録および再生トポロジーには、複数の統合ノードまたは複数の独立統合サーバーを含めることができます。 メッセージ・フローをデプロイするときと、それらのメッセージ・フローからのデータをデータベースに記録するときで、使用する統合ノードまたは統合サーバーが異なる場合は、統合ノードまたは統合サーバーの間にパブリッシュ/サブスクライブ関係を構成する必要があります。
このタスクの概要
データの記録元となるメッセージ・フローをデプロイするときと、データベースからデータを表示するときとで、それぞれ異なる統合ノードまたは統合サーバーを使用できます。 データの表示および再生に使用する統合ノードまたは統合サーバーは、データをデータベースに記録するために使用される統合ノードまたは統合サーバーと対話しません。 ただし、メッセージ・フローをデプロイする先の統合ノードまたは統合サーバーが、記録用統合ノードまたは統合サーバーと異なる場合、それらの統合ノードまたは統合サーバー間でパブリッシュ/サブスクライブの関係をセットアップする必要があります。データの記録は、パブリッシュ/サブスクライブ・モデルに基づいています。 ユーザーは、統合ノードまたは統合サーバーにデプロイしたメッセージ・フローのモニターを構成します。例えば、デプロイ先は統合サーバー MONSERV とします。 これは、モニター・イベントを構成するときに、指定したトピックにパブリッシュします。 このトピックは、記録するデータのソースを示します。 server.conf.yaml ファイルを更新するときに、このトピックを指定します。 データ記録の構成 を参照してください。
記録は、任意の統合ノードまたは統合サーバーで行うことができますが、表示と再生には同じ統合サーバーを使用する必要があります。
このシナリオでは、MONSERV はモニター・トピックでパブリッシュし、RECSERV はそのトピックにサブスクライブします。 MONSERV がキュー・マネージャー MONQM で実行され、RECSERV がキュー・マネージャー RECQM で実行されている場合、MONQM と RECQM の間でパブリッシュ/サブスクライブの関係を構成する必要があります。
クラスター関係を作成するのか、2 つのキュー・マネージャー間で階層型のパブリッシュ/サブスクライブ関係を作成するのかを選択できます。 キュー・マネージャーを頻繁にトポロジーに追加する予定の場合、クラスター関係の方が適しています。 IBM® MQ のオンライン製品ドキュメントにある 「パブリッシュ/サブスクライブ・トポロジー」
に関する項目をご覧ください。 この例では、階層関係を使用しています。 例において、単一引用符で囲まれた値は、任意の値で置き換えることができますが、小文字を使用する場合は引用符を外さないでください。 以下のステップを実行します。
手順
- MONQM と RECQMの間の Point-to-Point チャネル接続を確立します。
- MONQMをホストするサーバー上のコマンド行で、
runmqsc
MONQM と入力します。
- メッセージを RECQMに転送するときに使用する MONQM の伝送キューを定義します。
DEFINE QLOCAL('RECQM') USAGE(XMITQ) TRIGGER TRIGDATA('MONQM.TO.RECQM') INITQ(SYSTEM.CHANNEL.INITQ)
- 送信側チャネルを定義します。
DEFINE CHANNEL('MONQM.TO.RECQM') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('RECQM.SERVER') XMITQ(XMIT)
DESCR('Sender channel from MONQM to RECQM')
RECQM.SERVER は、
RECQM をホストするサーバーの名前です。
- 受信側チャネルを定義します。
DEFINE CHANNEL('RECQM.TO.MONQM') CHLTYPE(RCVR) TRPTYPE(TCP)
DESCR('Receiver channel from RECQM to MONQM')
- キュー・マネージャー上のリスナーを構成します。
DEFINE LISTENER ('LISTENER.TCP') TRPTYPE(TCP) PORT(PORT) CONTROL(QMGR)
PORT は、リスナーが listen するポート番号です。
- リスナーを始動します。
START LISTENER('LISTENER.TCP') を入力します
-
END を入力して、 RUNMQSC セッションを終了します。
- 次に、 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.SERVER は
MONQM をホストするサーバーの名前であり、
PORT はリスナーが listen するポート番号です。
- キュー・マネージャーのパブリッシュ/サブスクライブ階層を構成します。
以下の手順を行うことで、RECQM を MONQM の子にします。
- RECQMをホストするサーバーでコマンド行を開き、次のように入力します。
runmqsc RECQM
- RECQM を MONQMの子にします。
ALTER QMGR PARENT('MONQM')
RECQM を MONQM の子にするには、親のキュー・マネージャー名を MONQM と指定する必要があります。
このキュー・マネージャーのすべてのパブリッシュ/サブスクライブ関係をリストすることで、操作が正常に行われたことを確認します。
DIS PUBSUB TYPE(ALL)
出力には、
MONQM が
RECQM の親になったことが示されます。
AMQ8723: Display pub/sub status details.
QMNAME(RECQM) TYPE(LOCAL)
AMQ8723: Display pub/sub status details.
QMNAME(MONQM) TYPE(PARENT)
-
END を入力して、 RECQMの RUNMQSC セッションを終了します。
- オプション: RECQMの場合と同様に 、MONQM の RUNMQSC セッションを開始し、パブリッシュ/サブスクライブのタイプを表示します。 出力には、RECQM が MONQM の子になったことが示されます。
次のタスク
記録および再生トポロジーのパフォーマンスへの影響を考慮します。 データ記録の調整を参照してください。
データを記録するためのステップを実行します。 データの記録を参照してください。