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$