MQの基礎の基礎

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$
   
```

https://qiita.com/piko_piko_pico/items/6d5774bec01c41ffaf84



```
-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$

```