はじめに
どこまで勉強するか...
参考サイト
◆【クイックスタート&チュートリアル】令和に生きるエンジニアのためのIBM MQ入門
https://qiita.com/ogi-iii/items/dfaef30e96de7a2818ea
◆よくわかる!IBM MQのことならMQ虎の巻
https://note.com/ibm_automatio/n/ne2282518aa69
◆実践習得 IBM MQの基本
https://pulsarintegration.jp/MQBasic/MQBasic_index.html
◆最初のIBM MQ JMSアプリケーションの作成と実行 - IBM Developer Learning Paths 日本語サイト
https://ibm.github.io/japan-technology/Code-Tutorials/mq-develop-mq-jms/
◆mqとは?開発に役立つ使い方、トレンド記事やtips - Qiita
https://qiita.com/tags/mq
◆IBM MQ ライセンス情報
https://www.ibm.com/docs/ja/ibm-mq/9.3?topic=mq-license-information
環境構築(Windows-WS2012R2)
◆Get an IBM MQ queue for development on Windows
https://developer.ibm.com/tutorials/mq-connect-app-queue-manager-windows/
1. IBM MQダウンロード
下記でダウンロードを実施
◆IBM MQ Advanced for Developers for Windows
https://ibm.biz/mqdevwindows
※【9.3.4.0-IBM-MQ-Advanced-for-Developers-Win64.zip】をダウンロード(666MB)
2. IBM MQインストール
REM インストールコマンド ※管理者権限でコマンドプロンプトを起動し、下記をコピペして実行
start /wait msiexec /i "C:\work\9.3.4.0-IBM-MQ-Advanced-for-Developers-Win64\MQServer\MSI\IBM MQ.msi" /l*v "C:\work\install.log" /q RESPONSE="C:\work\9.3.4.0-IBM-MQ-Advanced-for-Developers-Win64\MQServer\Response.ini" TRANSFORMS="1041.mst" AGREETOLICENSE="yes" ADDLOCAL="Server"
REM 完了後、勝手に再起動コマンドが走る
REM ログイン後、install.logを見てエラーが発生していないことを確認
REM インストールが成功していると、タスクバーにIBM MQのアイコンが表示される
3. キュー・マネージャーの生成と起動
cd "C:\Program Files\IBM\MQ\bin"
REM IBM MQ 環境の設定(ご使用のシステムに合わせて環境変数を設定)
setmqenv -s
REM IBM MQ のバージョンおよびビルド情報を表示
dspmqver
REM キュー・マネージャーの作成
crtmqm QM1
REM キュー・マネージャーの始動
strmqm QM1
◆IBM MQ 制御コマンド・リファレンス
https://www.ibm.com/docs/ja/ibm-mq/9.3?topic=reference-mq-control-commands
4. キュー・マネージャーの設定
事前に下記サイトをファイルで保存(UTF-8)し、適当な場所に保存(今回はC:\work)
https://raw.githubusercontent.com/ibm-messaging/mq-dev-samples/master/gettingStarted/mqsc/mq-dev-config.mqsc
REM テキスト・ファイル(mq-dev-config.mqsc)に含まれている一連のコマンドを実行
runmqsc QM1<"C:\work\mq-dev-config.mqsc"
5. MQ クライアント アプリケーションを実行するためのユーザーとグループを作成
REM グループ作成(mqclient)
net localgroup mqclient /add
REM ユーザー作成(app)
net user app /add Passw0rd
REM ユーザー(app)をグループ(mqclient)に割当
net localgroup mqclient app /add
REM ユーザーのパスワードを無期限にする(app)
wmic useraccount where "Name='app'" set PasswordExpires=FALSE
REM 権限の付与または取り消し
REM キュー・マネージャー名(-m)/変更対象(-t):キューマネージャー(qmgr)/グループ名(-g)/
setmqaut -m QM1 -t qmgr -g mqclient +connect +inq
REM キュー・マネージャー名(-m)//変更対象(-t):キュー(queue)/グループ名(-g)/
setmqaut -m QM1 -n DEV.** -t queue -g mqclient +put +get +browse +inq
◆MQ オブジェクト権限の認可 (GRTMQMAUT)
https://www.ibm.com/docs/ja/ibm-mq/9.3?topic=reference-grtmqmaut-grant-mq-object-authority
※オブジェクト・タイプの各値の意味はここから
6. キューとの間でメッセージの送受信を行う
REM 環境変数の設定
set MQSERVER=DEV.APP.SVRCONN/TCP/localhost(1414)
set MQSAMP_USER_ID=app
REM サンプルフォルダに移動
cd C:\Program Files\IBM\MQ\tools\c\Samples\Bin64
REM キューにメッセージを送信
amqsputc DEV.QUEUE.1 QM1
Sample AMQSPUT0 start
Enter password: ******** ★パスワードを入力
target queue is DEV.QUEUE.1
message 1 ★入力
message 2 ★入力
★エンターキー
Sample AMQSPUT0 end
REM キューからメッセージを受信
amqsgetc DEV.QUEUE.1 QM1
Sample AMQSGET0 start
Enter password: ******** ★パスワードを入力
message <message 1>
message <message 2>
no more messages
Sample AMQSGET0 end