IBM MQ简明教程——2. 将消息发送至远程队列

一. 创建队列管理器

  1. 通过以下命令,创建名为QMGR_02_BANK的队列管理器
crtmqm QMGR_02_BANK
  1. 通过输入以下命令来启动此队列管理器
strmqm QMGR_02_BANK

示例如下:

$ crtmqm QMGR_02_BANK
IBM MQ queue manager created.
Directory '/var/mqm/qmgrs/QMGR_02_BANK' created.
The queue manager is associated with installation 'Installation1'.
Creating or replacing default objects for queue manager 'QMGR_02_BANK'.
Default objects statistics : 83 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
$ strmqm QMGR_02_BANK
The system resource RLIMIT_NOFILE is set at an unusually low level for IBM MQ.
IBM MQ queue manager 'QMGR_02_BANK' starting.
The queue manager is associated with installation 'Installation1'.
5 log records accessed on queue manager 'QMGR_02_BANK' during the log replay phase.
Log replay for queue manager 'QMGR_02_BANK' complete.
Transaction manager state recovered for queue manager 'QMGR_02_BANK'.
IBM MQ queue manager 'QMGR_02_BANK' started using V9.1.1.0.
$

二. 创建本地队列

  1. 通过输入以下命令来启用 MQSC 命令
runmqsc QMGR_02_BANK
  1. 通过输入以下命令来定义名为 QM_02_BANK 的本地队列(传输队列)
define qlocal (Q_TRAN_02_BANK) usage (xmitq)

此时会显示消息,告诉您已经创建了队列和缺省 IBM MQ 对象。

qlocal:队列名称
usage:队列用法,normal代表本地队列,xmitq代表传输队列

  1. 通过输入以下命令来定义远程队列定义
define qremote (Q1) rname (Q1) rqmname(QMGR_01_BANK) xmitq (Q_TRAN_02_BANK)

qremote:远程队列名称
rname:接收队列的名称
rqmname:接收队列所属的队列管理器名称
xmitq:传输队列管理器名称
注意:远程队列必须与接收队列名称完全一致,否则消息无法发送出去。

示例如下:

$ strmqm QMGR_02_BANK
The system resource RLIMIT_NOFILE is set at an unusually low level for IBM MQ.
IBM MQ queue manager 'QMGR_02_BANK' starting.
The queue manager is associated with installation 'Installation1'.
5 log records accessed on queue manager 'QMGR_02_BANK' during the log replay phase.
Log replay for queue manager 'QMGR_02_BANK' complete.
Transaction manager state recovered for queue manager 'QMGR_02_BANK'.
IBM MQ queue manager 'QMGR_02_BANK' started using V9.1.1.0.
$ runmqsc QMGR_02_BANK
5724-H72 (C) Copyright IBM Corp. 1994, 2018.
Starting MQSC for queue manager QMGR_02_BANK.


define qlocal (Q_TRAN_02_BANK) usage (xmitq)
     1 : define qlocal (Q_TRAN_02_BANK) usage (xmitq)
AMQ8006I: IBM MQ queue created.
define qremote (Q1) rname (Q1) rqmname(QMGR_01_BANK) xmitq (Q_TRAN_02_BANK)
     2 : define qremote (Q1) rname (Q1) rqmname(QMGR_01_BANK) xmitq (Q_TRAN_02_BANK)
AMQ8006I: IBM MQ queue created.
end
     3 : end
2 MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.
$ 

三、创建接收消息通道

  1. 在接收机器上打开命令提示符,然后按照以下步骤操作:
    通过输入以下命令来启动 MQSC:
runmqsc QMGR_01_BANK
  1. 通过输入以下命令来定义接收通道
define channel (CHL1) chltype (RCVR) trptype (TCP)

channel:通道名称
chltype:通道类型

RCVR:接收
SDR:发送

trptype:传输类型协议

  1. 打开新的命令窗口并查看哪些端口空闲。输入下列命令:
netstat -an

这将显示正在运行的进程的列表。查看每个进程的端口号以了解端口 1414 是否正在使用中;您可以通过查看本地地址列来找到它。该信息采用 ip_address:port_being _used 格式提供。
如果端口 1414 未使用,那么稍后在验证时使用 1414 作为侦听器和发送方通道的端口号。如果它在使用中,那么选择未使用的备用端口;例如,如果 1415 未被另一进程使用,那么选择该端口。

  1. 验证要求您启动缺省的 IBM MQ 侦听器。缺省情况下,该侦听器将侦听端口 1414。如果在步骤 中发现端口 1414 空闲,那么不需要执行任何操作即可继续执行步骤,如果必须使用除 1414 之外的端口,那么修改 SYSTEM.DEFAULT.LISTENER.TCP 的定义。例如,要使用端口 8088,请在 MQSC 窗口中输入下列命令:
alter listener(system.default.listener.tcp) trptype(tcp) port(8088)
  1. 在 MQSC 窗口中,通过输入以下命令来启动缺省 IBM MQ 侦听器
start listener(system.default.listener.tcp)
  1. 通过输入以下命令来停止 MQSC:
end

将显示一些消息,然后会显示命令提示符。
示例如下:

$ runmqsc QMGR_01_BANK
5724-H72 (C) Copyright IBM Corp. 1994, 2018.
Starting MQSC for queue manager QMGR_01_BANK.


define channel (CHL1) chltype (RCVR) trptype (TCP)
     1 : define channel (CHL1) chltype (RCVR) trptype (TCP)
AMQ8014I: IBM MQ channel created.
alter listener(system.default.listener.tcp) trptype(tcp) port(8088)
     2 : alter listener(system.default.listener.tcp) trptype(tcp) port(8088)
AMQ8623I: IBM MQ listener changed.
start listener(system.default.listener.tcp)
     3 : start listener(system.default.listener.tcp)
AMQ8021I: Request to start IBM MQ listener accepted.
end
     4 : end
3 MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.
$

四、创建发送消息通道

  1. 在发送机器上打开命令提示符,然后按照以下步骤操作
    通过输入以下命令来启动 MQSC:
runmqsc QMGR_02_BANK
  1. 通过输入以下命令来定义发送方通道
define channel(CHL1) chltype(sdr) conname('127.0.0.1(8088)') xmitq(Q_TRAN_02_BANK) trptype(tcp)

xmitq:传输队列名称
con-name:接收方工作站的 TCP/IP 地址。值 port 是接收方机器上对其运行侦听器的端口,缺省值是 1414。
注意:发送通道必须与接收通道名称相同,否则消息无法发送。

  1. 通过输入以下命令来启动通道
start channel (CHL1)
  1. 通过输入以下命令来停止 MQSC
end

示例如下:

$ runmqsc QMGR_02_BANK
5724-H72 (C) Copyright IBM Corp. 1994, 2018.
Starting MQSC for queue manager QMGR_02_BANK.


define channel(CHL1) chltype(sdr) conname('127.0.0.1(8088)') xmitq(Q_TRAN_02_BANK) trptype(tcp)
     1 : define channel(CHL1) chltype(sdr) conname('127.0.0.1(8088)') xmitq(Q_TRAN_02_BANK) trptype(tcp)
AMQ8014I: IBM MQ channel created.
start channel (CHL1)
     2 : start channel (CHL1)
AMQ8018I: Start IBM MQ channel accepted.
end
     3 : end
2 MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.
$

五、查看发送通道状态

  1. 在发送机器上打开命令提示符,然后按照以下步骤操作
    通过输入以下命令来启动 MQSC:
runmqsc QMGR_02_BANK
  1. 通过输入以下命令查看发送通道状态
dis chs(*)

示例如下:

$ runmqsc QMGR_02_BANK
5724-H72 (C) Copyright IBM Corp. 1994, 2018.
Starting MQSC for queue manager QMGR_02_BANK.


dis chs(*)
     1 : dis chs(*)
AMQ8417I: Display Channel Status details.
   CHANNEL(CHL1)                           CHLTYPE(SDR)
   CONNAME(127.0.0.1(8088))                CURRENT
   RQMNAME(QMGR_01_BANK)                   STATUS(RUNNING)
   SUBSTATE(MQGET)                         XMITQ(Q_TRAN_02_BANK)
end
     2 : end
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
$

六、查看接收通道状态

  1. 在发送机器上打开命令提示符,然后按照以下步骤操作
    通过输入以下命令来启动 MQSC:
runmqsc QMGR_01_BANK
  1. 通过输入以下命令查看发送通道状态
dis chs(*)

示例如下:

$ runmqsc QMGR_01_BANK
5724-H72 (C) Copyright IBM Corp. 1994, 2018.
Starting MQSC for queue manager QMGR_01_BANK.


dis chs(*)
     1 : dis chs(*)
AMQ8417I: Display Channel Status details.
   CHANNEL(CHL1)                           CHLTYPE(RCVR)
   CONNAME(127.0.0.1)                      CURRENT
   RQMNAME(QMGR_02_BANK)                   STATUS(RUNNING)
   SUBSTATE(RECEIVE)
end
     2 : end
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
$

七、 使用 amqsput 将测试消息放入远程队列

  1. 启动 amqsput 样本程序
    在 Linux 上,更改为 MQ_INSTALLATION_PATH/samp/bin 目录,其中 MQ_INSTALLATION_PATH 表示安装了 IBM MQ 的高级目录。输入以下命令:
./amqsput Q1 QMGR_02_BANK
  1. 在一行或多行上输入某些消息文本,然后按 Enter 键两次。 此时会显示以下消息:
    Sample AMQSPUT0 end
    示例如下:
$ pwd
/opt/mqm/samp/bin
$ ./amqsput Q1 QMGR_02_BANK
Sample AMQSPUT0 start
target queue is Q1
Hello World!
ni hao ma!

Sample AMQSPUT0 end
$

八、 验证是否已发送测试消息

  1. 启动 amqsget 样本程序
    在 Linux 上,更改为 MQ_INSTALLATION_PATH/samp/bin 目录,其中 MQ_INSTALLATION_PATH 表示安装了 IBM MQ 的高级目录。输入以下命令:
./amqsget Q1 QMGR_01_BANK

结果
此时会启动该样本程序,并显示您的消息以及此队列上的任何其他消息。在暂停 15 秒钟后,样本程序结束,并再次显示命令提示符。
示例如下:

$ pwd
/opt/mqm/samp/bin
$ ./amqsget Q1 QMGR_01_BANK
Sample AMQSGET0 start
message <Hello World!>
message <ni hao ma!>
no more messages
Sample AMQSGET0 end
$

参考
将消息发送至远程队列

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容