分享

如何察看MQ中queue的消息内容

 陈永正的图书馆 2016-11-07
       转自http://blog./article.php?articleId=56301&blogId=458

第一次在MQ这个栏目里写东西呢。
工作中的一些体会:如何查看queue里的messages的content.

说实在的,MQ的东西很烦琐,虽然很强大。可是中文的资料太少(当然中文版的MQ会带些帮助文档,不过都是垃圾);英文的太拗口(虽然我整天看英文的文档,还是看不太懂;要不就是MQ太庞大了?)
反正我只是在工作中学了那么一点点可怜的东西,就赶快写出来了。


据我所知,是有两种的方式来查看queue的content.

Prepare:
假设queue的名字叫做local.queue, queue manager的名字叫做 test.queue.manager,mq安装在/opt/mqm下.

1.先确定queue的长度不是0.
$runmqsc
test.queue.manager
dis ql('
local.queue') curdepth
     2 : dis ql('
local.queue') curdepth
AMQ8409: Display Queue details.
   QUEUE(
local.queue
)    CURDEPTH(1)

如上所示,queue里面是有一个message的,因为curdepth的长度为1.

2.查看queue的message的内容
第一种方式:使用/opt/mqm/samp/bin/amqsget
第二种方式:使用/opt/mqm/samp/bin/amqsbcg

共同点:
都是在命令后面先跟queue的名字,然后再跟queue manager的名字,
如下

/opt/mqm/samp/bin/amqsget local.queue  test.queue.manager

区别是:
前者只能查看短长度的message,并且会把message取出(还不是太确定后者);遇到长度稍微长一点的就会发出2080的error code.
$/opt/mqm/samp/bin/amqsget
local.queue  test.queue.manager
Sample AMQSGET0 start
MQGET ended with reason code 2080
Sample AMQSGET0 end

而后者则没有这个限制;但是
amqsbcg显示的message很奇特,连二进制的都同时显示
$/opt/mqm/samp/bin/amqsbcg local.queue  test.queue.manager
.............
..................
00000000:  5246 4820 0000 0002 0000 00BC 0000 0111 'RFH ............'
00000010:  0000 04B8 2020 2020 2020 2020 0000 0000 '....        ....'
00000020:  0000 04B8 0000 0020 3C6D 6364 3E3C 4D73 '....... 00000030:  643E 6A6D 735F 6279 7465 733C 2F4D 7364 'd>jms_bytes00000040:  3E3C 2F6D 6364 3E20 0000 003C 3C6A 6D73 '> ...<.....................
.....................


The end.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多