0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MQの基礎の基礎

Last updated at Posted at 2021-12-03

内容が非常にわかりにくいので改版します。

皆様がMQの基礎を知りたいのにも関わらず、意味不明な記事でご迷惑をおかけして申し訳ございませんでした。

気づいたら16000人?もの方が訪れいて、この記事を見てキレて。。。。

すいません。

気を取り直してMQって何?

一番大事なのはまずはキューマネジャーです。これは絶対覚えください。キューマネジャー名をまずは。それさえわかれば後はまぁ何とかなります。

キューマネジャーって何ができるの

キューマネジャーを作成することで以下の3つを作成できます。

「キュー」

「チャネル」

「リスナー」

その他重要な点。

キューマネジャー最大データサイズ(100MBのはず。。)

CCSID(文字コード)この2点が非常に重要。

最近はSSLも??これらを初期値から変更します。だいたいどこの案件も似たもの

接続方法

sudo su -
su - mqm

dspmq #これであなたの環境のキューマネジャー名はわかります

##runmqsc キューマネジャー名 QMGR01(例)
runmqsc QMGR01(例)

#パスを切っていない環境はないと思うが一応
/opt/mqm/bin/runmqsc QMGR01(例)

画面入ったらとりあえず以下をコピペして!!disは安全だからdisplay
dis qmgr
##ビビらないでOK(笑)
## キューマネジャーの設定値が出てきます。

end
##もとに世界に戻れます(笑)

本当にたったこれだけ。OKですか。では次に行きますね。

キューってなに?

基盤担当にとっては少しとっつきにくい。理由:アプリ担当が使うものだから

アプリ担当が、そのキューマネジャーのキューに対してデータを送るプログラミングをします!

※まずはこれくらいの理解でOK
※ちなみにアプリはJNDI名で通常キューマネジャーのキューを指定します。
※後ほど時間があれば別の記事で書きますね。

ではキューの情報みたいぜ

sudo su -
su - mqm

runmqsc QMGR01(例)

#パスを切っていない環境はないと思うが一応
/opt/mqm/bin/runmqsc

画面入ったら
dis q(*)
##ビビらないでOK(笑)
## キュー名が出ます

もっと情報出したいぜ
dis q(*) ALL
##ちょっとびびったかな。


end
##もとに世界に戻れます(笑)

2025年8月7日ここまでいったん更新
次回はリスナー、チャネルの説明予定
################################################

運用者の場合

sudo su -
su - mqm
runmqsc キューマネジャーの名前

構築担当の場合

キューマネジャー作成コマンド

運用担当は以下のコマンドは絶対実施しないで!!

#キューマネジャー作成コマンド
/opt/mqm/bin/crtmqm キューマネジャーの名前

IBMのMQのPDFの内容。

以下のような構成要素が必要になります。
送信側
宛先となるリモート・キュー(送信側のデータを宛先)名前:Q1
※キューマネジャ名:QM_ORANGE

送信側と受信側
●メッセージの通り道である、チャネル 名前:QM_ORANGE.QM_APPLE

送信側
●トランスミッション・キュー(送信側のキュー):QM_APPLE
※usage (xmitq)をつけて、ローカルキューとして作成する。

受信側
●リモート・キュー定義(送信側から見た受信側のキュー) 名前:Q1
※キューマネジャ名:QM_ORANGE
/opt/mqm/samp/bin/amqsputは

まず、宛先となるリモート・キュー(送信側のデータを宛先)にデータを送る。

チャネルは
、2つのキュー・マネージャーそれぞれでは
必ず同じ名前で
「送信チャネル- 受信チャネル」というペア
を作成することになります。この時、送信側と受信側の両方で、メッセージ・チャネル・
エージェント(MCAと呼ばれています)と呼ばれるプロセスが起動して、メッセージ転送や
エラー発生時のメッセージ再送や再接続などの各種の制御を行います。

チャネルは、senderからの起動はできる。receiverからの起動は不可。

Sender側からチャネルの停止を行うと、両側のチャネルが停止し、メッセー
ジの転送が終了します.

  • 再度チャネルを開始するときには、Sender側からチャネルの始動を
    行います.
  • 一方Receiver側でチャネルの停止を行うと、自分のチャネルだけが終了す
    るだけで、Sender側は終了しません.
  • 再度チャネルを開始するときには、Receiver側も始動する必要があり
    ます.

※senderから停止したほうがいいと思う。わかりやすいし。
※間違えてReceiverから実施した場合は、どうしたらいいんだろう。。

追加

### キューマネジャーを作成します

-bash-4.2$ /opt/mqm/bin/crtmqm YYY
この IBM MQ のコピーの残りの試行期間は 89 日です。
IBM MQ キュー・マネージャーが作成されました。
ディレクトリー '/var/mqm/qmgrs/YYY' が作成されました。
キュー・マネージャーはインストール済み環境 'Installation1' に関連付けられています。
キュー・マネージャー 'YYY' のデフォルト・オブジェクトを作成または置換しています。
デフォルト・オブジェクトの統計 : 作成 84、置換 0、失敗 0
設定を完了中です。
設定が完了しました。
-bash-4.2$

### キューマネジャーを起動します

-bash-4.2$ /opt/mqm/bin/strmqm YYY
この IBM MQ のコピーの残りの試行期間は 89 日です。
システム・リソース RLIMIT_NOFILE が、IBM MQ には異常に低いレベルに設定されています。
IBM MQ キュー・マネージャー 'YYY' を開始しています。
キュー・マネージャーはインストール済み環境 'Installation1' に関連付けられています。
ログのやり直しフェーズ中に、キュー・マネージャー 'YYY' で 5 ログ・レコード がアクセスされました。
キュー・マネージャー 'YYY' のログのやり直しが完了しました。
キュー・マネージャー 'YYY' のトランザクション・マネージャーの状態が 回復されました。
IBM MQ キュー・マネージャー 'YYY' が V9.1.0.0
を使用して開始されました。
-bash-4.2$

### 起動したキューマネジャー内でキューを作成します

-bash-4.2$ /opt/mqm/bin/runmqs
runmqsc   runmqsfb
-bash-4.2$ /opt/mqm/bin/runmqsc YYY
5724-H72 (C) Copyright IBM Corp. 1994, 2018.
キュー・マネージャー YYY に対して MQSC を始動中です。



       :
define qlocal(AAA) ##キューを作成するコマンド
     1 : define qlocal(AAA)
AMQ8006I: IBM MQ キューが作成されました。

       :
dis q(AAA) ##作成したキューを確認するコマンド
     2 : dis q(AAA)
AMQ8409I: キューの内容を表示します。
   QUEUE(AAA)                              TYPE(QLOCAL)
   ACCTQ(QMGR)                             ALTDATE(2024-03-06)
   ALTTIME(23.16.06)                       BOQNAME( )
   BOTHRESH(0)                             CLUSNL( )
   CLUSTER( )                              CLCHNAME( )
   CLWLPRTY(0)                             CLWLRANK(0)
   CLWLUSEQ(QMGR)                          CRDATE(2024-03-06)
   CRTIME(23.16.06)                        CURDEPTH(0)
   CUSTOM( )                               DEFBIND(OPEN)
   DEFPRTY(0)                              DEFPSIST(NO)
   DEFPRESP(SYNC)                          DEFREADA(NO)
   DEFSOPT(SHARED)                         DEFTYPE(PREDEFINED)
   DESCR( )                                DISTL(NO)
   GET(ENABLED)                            HARDENBO
   IMGRCOVQ(QMGR)                          INITQ( )
   IPPROCS(0)                              MAXDEPTH(5000)
   MAXMSGL(4194304)                        MONQ(QMGR)
   MSGDLVSQ(PRIORITY)                      NOTRIGGER
   NPMCLASS(NORMAL)                        OPPROCS(0)
   PROCESS( )                              PUT(ENABLED)
   PROPCTL(COMPAT)                         QDEPTHHI(80)
   QDEPTHLO(20)                            QDPHIEV(DISABLED)
   QDPLOEV(DISABLED)                       QDPMAXEV(ENABLED)
   QSVCIEV(NONE)                           QSVCINT(999999999)
   RETINTVL(999999999)                     SCOPE(QMGR)
   SHARE                                   STATQ(QMGR)
   TRIGDATA( )                             TRIGDPTH(1)
   TRIGMPRI(0)                             TRIGTYPE(FIRST)
   USAGE(NORMAL)

end ##runmqscを終了するコマンド
     3 : end
2 MQSC コマンドが読み取られました。
構文エラーがあるコマンドはありません。
有効な MQSC コマンドはすべて処理されました。
-bash-4.2$
   

-bash-4.2$ ./amqsput AAA YYY   ## AAAがキュー名 YYY がキューマネジャー名
Sample AMQSPUT0 start
target queue is AAA
TEST ##最後にENTERを2度

Sample AMQSPUT0 end
-bash-4.2$
-bash-4.2$
-bash-4.2$
##getでメッセージが確認できるかどうか
-bash-4.2$ ./amqsget AAA YYY
Sample AMQSGET0 start
message <TEST>


^C
-bash-4.2$

0
3
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
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?