2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM MQ入門:コンテナで動かすハンズオン 2. 初級編 MQの基本操作(GUI版)

Last updated at Posted at 2025-08-29

1. この記事について

この記事は、IBM MQに関するハンズオン資料シリーズの一部です。
まだ「はじめに」の記事をご覧になっていない方は、まずそちらからご確認ください。

初級編には、GUI版とCLI版の2つのバージョンがあります。
インターフェースは異なりますが、実施する内容はどちらも同じです。

  • GUI版:Webコンソールを使用(本記事)
  • CLI版:Webコンソールを使用せず、コマンドで操作

どちらを選んでも問題ありませんが、MQを初めて触る方には、現在の状況を把握しやすいGUI版(本記事)をおすすめします。

CLI版で操作を行いたい方は、以下の記事を参照してください。
2. 初級編 MQの基本操作(CLI版)

この章の位置付け

この章では、MQコンソールを使用してブラウザ上からMQを動かします。

  • このハンズオンによってできるようになること
    • IBM MQの基本的な操作を理解する
    • キューマネージャーの作成と管理
    • ローカルキューとリモートキューの作成
    • メッセージの送受信
  • このハンズオンの目的
    • IBM MQの基本的な操作を実際に体験し、理解を深める
  • 対象者の前提条件
    • IBM MQの基礎を知っていること

前提となる環境

本資料では、以下の内容を前提の環境としています。

本資料の環境 バージョン
git version 2.46.0
podman version 5.3.1 (homebrew)
make (Apple Silicon (Arm64)のmacユーザーの場合) version 4.4.1 (homebrew)

2. ハンズオンの全体像

image.png

このハンズオンでは、以下の2つの基本的な操作について学習します:

ローカルキューへのメッセージ送信

QM1にあるローカルキューに対してメッセージを送信し、次に送信した内容を確認します。
ローカルキューへのメッセージ送信では、以下のコンポーネントを使用します:

  • キューマネージャー(QM1:メッセージキューを管理するシステム
  • ローカルキュー(DEV.QUEUE.1:同一キューマネージャー内でメッセージを格納する領域

リモートキューへのメッセージ送信

QM1にあるリモートキューに対してメッセージを送信し、QM2にあるローカルキューに伝送されたメッセージを確認します。

リモートキューへのメッセージ送信では、以下のコンポーネントを設定・使用します:

  • キューマネージャー(QM1, QM2:QM1が送信側、QM2が受信側
  • カスタムネットワーク(mq-network:キューマネージャー間の通信経路
  • リモートキュー定義(REMOTE.Q.1:QM1上に定義された、QM2上のローカルキューを参照する定義
  • トランスミッションキュー(TRANS.Q.1:QM1からQM2へメッセージを転送するための一時保管場所
  • ローカルキュー(DEV.QUEUE.2:QM2上の実際のメッセージ格納先
  • チャネル(QM1toQM2:QM1とQM2間のメッセージ転送経路

3. インストールイメージの取得

まずはインストールイメージを取得します。

以下のガイドを参考にして、手順を実行していきます。
https://developer.ibm.com/tutorials/mq-connect-app-queue-manager-containers/

Apple Silicon (Arm64)のmacユーザーの場合:

m1以降のmacユーザーの場合は、こちらのガイドに従ってインストールイメージを取得します。

MQ Container GitHubリポジトリで公開されているイメージをgit cloneによって取得します。

git clone https://github.com/ibm-messaging/mq-container.git

取得したファイルに移動します。

cd mq-container

Makefileを使用してMQインストールイメージをプルダウンし、コンテナーイメージを構築します。

make build-devserver

Windowsユーザーの場合:

podmanを使用してイメージの取得を行います。

podman pull icr.io/ibm-messaging/mq:latest

4. キューマネージャーの作成

このセクションではpodmanのコマンドを使用してキューマネージャーを作成します。

カスタムネットワークの作成

image.png

まずは、コンテナ間でメッセージのやり取りを行うために、カスタムネットワークを作成します。

今回は、mq-networkという名前で作成します。

podman network create mq-network

イメージ名の確認

以下のコマンドを実行して、1つ前のセクションで取得したmqのイメージ名を確認します。

podman images

表示されているIMAGE IDをメモしてください。

例:以下の場合、3145ec5524f8がIMAGE IDです。(Windowsの場合、REPOSITORYはicr.io/ibm-messaging/mqと表示されます。)

REPOSITORY                                   TAG                IMAGE ID      CREATED         SIZE
localhost/ibm-mqadvanced-server-dev          9.4.2.0-arm64      3145ec5524f8  11 minutes ago  852 MB

QM1の作成

image.png
コピーしたIMAGE IDを使用して、キューマネージャーを作成します。

まずはQM1を作成します。

podman run --env LICENSE=accept --env MQ_QMGR_NAME=QM1 --volume qm1data:/mnt/mqm --publish 1414:1414 --publish 9443:9443 --detach --env MQ_APP_USER=app --env MQ_APP_PASSWORD=passw0rd --env MQ_ADMIN_USER=admin --env MQ_ADMIN_PASSWORD=passw0rd --name QM1 --network mq-network <your-image-id>

この際、今回のハンズオンで使用するDEV.QUEUE.1はデフォルトで作成されます。

QM2の作成

image.png

次に、QM2を作成します。

podman run --env LICENSE=accept --env MQ_QMGR_NAME=QM2 --volume qm2data:/mnt/mqm --publish 1415:1414 --publish 9444:9443 --detach --env MQ_APP_USER=app --env MQ_APP_PASSWORD=passw0rd --env MQ_ADMIN_USER=admin --env MQ_ADMIN_PASSWORD=passw0rd --name QM2 --network mq-network <your-image-id>

この際、今回のハンズオンで使用するDEV.QUEUE.2はデフォルトで作成されます。

以下のコマンドで現在実行中のコンテナを確認します。

podman ps

以下のように、QM1とQM2が無事に作成されていることを確認してください。

CONTAINER ID  IMAGE                                              COMMAND               CREATED         STATUS         PORTS                                                               NAMES
3e1089b0fc7b  localhost/ibm-mqadvanced-server-dev:9.4.2.0-arm64                        31 seconds ago  Up 31 seconds  0.0.0.0:1414->1414/tcp, 0.0.0.0:9443->9443/tcp, 9157/tcp, 9415/tcp  QM1
8273a595f54d  localhost/ibm-mqadvanced-server-dev:9.4.2.0-arm64                        5 seconds ago   Up 5 seconds   0.0.0.0:1415->1414/tcp, 0.0.0.0:9444->9443/tcp, 9157/tcp, 9415/tcp  QM2

webコンソールにアクセス

image.png

webブラウザで以下のURLを開いてください。

https://localhost:9443/ibmmq/console

「詳細設定」をクリックします。
image.png

「localhost にアクセスする(安全ではありません)」をクリックします。
image.png

ログイン画面が開くので、ユーザー名とパスワードに以下の値を入力してください。

ユーザーネーム:admin

パスワード:passw0rd
image.png

QM1にアクセスできました。画面に「QM1の管理」と書かれているのを確認してください。
image.png

次に、ブラウザで新しいタブを開いて以下のリンクを開いてください。

https://localhost:9444/ibmmq/console

上記と同様の手順を実行し、QM2にアクセスします。

画面に「QM2の管理」と書かれているのを確認してください。
image.png

5. 練習: MQの基本操作

image.png

このセクションでは、練習としてキューの作成と削除、メッセージの送信を行います。

キューの作成と削除

QM1のタブに戻り、「QM1の管理」を選択します。
image.png

タブからキューを選択します。
image.png

作成をクリックします。
image.png

ローカルを選択して次へをクリックします。
image.png

キュー名をDEV.QUEUE.4に設定します。

「カスタム作成」をクリックすると細かい設定を行うことも可能ですが、今回はデフォルト設定のまま作成をクリックします。
image.png

DEV.QUEUE.4が新しいキューとして追加されているのが確認できます。
image.png

次に、キューを削除する方法を確認してみましょう。

DEV.QUEUE.4をクリックします。
image.png

アクションをクリックし、キューの削除をクリックします。
image.png

ポップアップが表示されるので、削除をクリックします。
image.png

キューの一覧からDEV.QUEUE.4が消えているのを確認します。
image.png

キューにメッセージを投げる

image.png

次に、キューの中にメッセージを送信してみましょう。

QM1のキュータブの画面から、DEV.QUEUE.1をクリックします。
image.png

作成をクリックします。
image.png

アプリケーション・データにtest1など適当なメッセージを入力して作成をクリックします。
image.png

DEV.QUEUE1にメッセージが追加されました。
image.png

次に、追加したメッセージを消去してみましょう。
右側のゴミ箱アイコンをクリックします。
image.png

削除をクリックします。
image.png

削除できたことを確認します。
image.png

6. QM1とQM2を接続する

このセクションではリモートキューとトランスミッションキュー、QM1とQM2を繋ぐチャネルを作成します。

QM1でリモートキュー作成

image.png

QM1でリモートキューを作成していきます。

画面左上から「キュー」をクリックし、QM1キューの管理画面に戻ります。
image.png

キュータブから作成をクリックします。
image.png

リモートをクリックして次へをクリックします。
image.png

キュー名をREMOTE.Q.1、リモート・キューにDEV.QUEUE.2を指定します。
image.png

リモート・キュー・マネージャーにQM2、伝送キュー(トランスミッションキュー)としてTRANS.Q.1を指定します(ただし、これはまだ作成されていません)。

設定が完了したら、作成をクリックします。
image.png

画面上にリモートキューが作成されたのが確認できます。
image.png

トランスミッションキューの作成

image.png

次に、トランスミッションキューを作成します。

QM1の画面で作成をクリックします。
image.png

ローカルを選択して、次へをクリックします。
image.png

キュー名にTRANS.Q.1を入力し、カスタム作成をクリックします。
image.png

「一般」という項目の中にある「使用法」を「伝送」に変更します。
これにより、このキューがトランスミッションキューとして設定されます。

設定が完了したので、作成をクリックします。
image.png

トランスミッションキューが追加されているのを確認します。
image.png

QM1で送信側チャネルの作成

image.png

次に、QM1とQM2を繋ぐチャネルを作成します。

まず、MQネットワークタブをクリックします。
image.png

左のメニューからキュー・マネージャー・チャネルを選択して、作成をクリックします。
image.png

この画面ではチャネル・タイプを作成します。

今回はQM1がメッセージを送信する側なので、送信側チャネルを選択して次へをクリックします。
image.png

チャネル名をQM1toQM2にします。

接続名の欄には、ターゲットとなるQM2のホスト名とポート番号を入力します。

今回は1414ポートにあるQM2にメッセージを送信したいので、QM2(1414)と入力します。
image.png

伝送キュー名にTRANS.Q.1を入力します。これにより、TRANS.Q.1からメッセージを取得したメッセージがQM2へと送信されます。

設定が完了したので作成をクリックします。
image.png

チャネルが無事に作成されたことを確認します。
image.png

QM2で受信側チャネルの作成

次に、QM2側で受信チャネルを作成していきます。

まずはQM1と別のタブで開いていたQM2のホーム画面を開き、QM2の管理をクリックします。
image.png

MQネットワークタブをクリックし、左のメニューからキュー・マネージャー・チャネルを選択し、作成をクリックします。
image.png

受信側チャネルを選択し、次へをクリックします。
image.png

チャネル名にQM1toQM2と入力し、作成をクリックします。
image.png

チャネルが無事に作成されたことを確認します。
image.png

QM2でセキュリティの設定

次に、チャネルのセキュリティに関する設定を行なっていきます。
構成の表示をクリックします。
image.png

セキュリティータブからチャネル認証をクリックし、作成をクリックします。
image.png

ルールタイプとして「許可」をクリックし、「アドレス」を選択し、次へをクリックします。
image.png

チャネル名にQM1toQM2、アドレスには*(どこからくるアドレスも許可する)と入力します。

作成をクリックします。
image.png

今回はデモのため全てのアドレスを許可していますが、実際の業務では厳密にセキュリティを設定する必要があります。

チャネル認証レコードが無事に作成されたことを確認します。
image.png

7. QM1からQM2へメッセージを送信する

image.png

それでは、作成したチャネルを使用してQM1からQM2へメッセージを飛ばしてみましょう。

QM1のタブに戻り、キュータブをクリックします。
image.png

REMOTE.Q.1の3点リーダーをクリックしてメッセージの作成を選択します。
image.png

アプリケーション・データにtest1など適当なメッセージを入力して作成をクリックします。
image.png

それでは、QM2にメッセージが送信されているか確認してみましょう。

QM2のタブを開き、画面左上の「QM2」をクリックします。
image.png

キュータブをクリックし、メッセージの送信先として設定したDEV.QUEUE.2をクリックします。
image.png

しかし、「現在、表示するメッセージはありません」と表示されています。

どうやら、設定がうまくいっておらず、QM1からQM2へとメッセージを送信するのに失敗したようです。
image.png

それでは、送信に失敗したメッセージがどこに保管されているのかを確認しましょう。

QM1のタブを再度開き、トランスミッションキューであるTRANS.Q.1をクリックします。
image.png

トランスミッションキューに、先ほど送信に失敗したメッセージが溜まっているのを確認します。
image.png

それでは、設定を修正しましょう。

まずは画面左上から「QM1」をクリックします。
image.png

MQネットワーク→キュー・マネージャー・チャネルをクリックします。
image.png

3点リーダーをクリックし、開始をクリックします。
image.png

状況が実行中になったことを確認します。
先ほどまでQM1からQM2にメッセージの送信ができなかったのは、チャネルが実行されていなかったのが原因でした。
image.png

それでは再度メッセージを送信してみましょう。
再度、キュータブをクリックし、REMOTE.Q.1の3点リーダーをクリックしてメッセージの作成を選択します。
image.png

アプリケーション・データにtest2など適当なメッセージを入力して、作成をクリックします。
image.png

QM2の画面に移動します。DEV.QUEUE.2の画面で、リロードボタンをクリックします。
image.png

QM1からQM2へメッセージが送信されたことが確認できます。
image.png

8. コンテナの削除

今回作成したコンテナは次の中級編でも継続して使用します。

ハンズオンをやり直す場合やここで終了する場合など、今回作成したコンテナを削除したい場合は、以下の手順を実行してください。

コンテナIDの確認

podman ps

コンテナの停止

podman stop <container id>

コンテナの消去

podman rm <container id>

イメージの確認

podman images

イメージの消去

podman rmi <image id>

マウントされているボリュームの確認

podman volume ls

マウントされているボリュームの消去

podman volume rm <volume name>

カスタムネットワークの確認

podman network rm

カスタムネットワークの消去

podman network rm mq-network

9. ハンズオン資料リンク

1. はじめに

2. 初級編 MQの基本操作(GUI版)

2. 初級編 MQの基本操作(CLI版)

3. 中級編 Libertyアプリによるメッセージの送受信

さらに詳しい情報をお探しの方へ

IBMの最新情報、イベント情報、さらに役立つ資料は、以下のIBM Communityでも発信・格納されています。 

最新のトレンドや有益な情報をチェックするために、ぜひご覧ください!

  WebSphere関連の最新情報やディスカッション、イベント情報、技術資料を公開中!

 

  ELMに関する最新のイベント情報、ナレッジ共有、便利なドキュメントをチェック!

 

  Integrationに関する最新のイベント情報、ナレッジ共有、便利なドキュメントをチェック!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?