转自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.
|