java mqc系统开源代码,java-MQ的管理 | 学步园

应用使用了MQ,但MQ没有一个合适的监控页面,监控手段比较匮乏,上周六出现了一次故障,当时如果有对MQ的监控手段,是能够及时发现问题,并防止故障的。在此之前就已经想自己写一个程序来监视MQ中的队列深度,以此来判断系统是否在干活。只是根据网上的资料一直都没能成功的获取MQ队列的深度,尽管这个功能是一段很简单代码,直到今天,从IBM的工程师那的到的一段代码,帮助我找到了之前的错误所在。

首先是要对MQ有个基本的了解,理解一些基本概念(我就是对一些基本概念理解不熟练导致一些参数写错了),然后就是看下面这个帖子:

这里对MQ的管理编程讲解得很到位,附的代码也很详尽。我采用的是PCF的方式。我仅仅需要完成对队列深度的获取,需要到IBM网站上下载一个lib,MS0b.zip文件,有一个com.ibm.mq.pcf-6.1.jar。相关代码如下:

1 PCFMessageAgent    agent;2 PCFMessage     request;3 PCFMessage []     responses;4 //Connect a PCFAgent to the specified queue manager5 agent=newPCFMessageAgent ("134.175.7.84",14146,"SYSTEM.ADMIN.SVRCONN");6 //Build the request7 request=newPCFMessage (CMQCFC.MQCMD_INQUIRE_Q);8 request.addParameter (CMQC.MQCA_Q_NAME,"*");9 request.addParameter (CMQC.MQIA_Q_TYPE, CMQC.MQQT_LOCAL);10 request.addParameter (CMQCFC.MQIACF_Q_ATTRS,11 newint[] { CMQC.MQCA_Q_NAME, CMQC.MQIA_CURRENT_Q_DEPTH });12 //Use the agent to send the request13 responses=agent.send (request);14 //Display the results15 for(inti=0; i

我弄错的代码主要是PCFMessageAgent ("134.175.7.84", 14146, "SYSTEM.ADMIN.SVRCONN");

最后附上IBM工程师给我的代码,很简单,但是好在有关键的注解:

MQEnvironment.CCSID = 1381;         //要与队列管理器的一样

MQEnvironment.hostname = "localhost";          // 队列管理器所在的机器名,要能ping通

MQEnvironment.port = 1414;                          // 队列管理器的监听端口

MQEnvironment.channel  = "CHTEST";

MQQueueManager qmgr=new MQQueueManager("TESTQM");   //队列管理器名称

MQQueue queue = qmgr.accessQueue("QTEST",MQC.MQOO_INPUT_AS_Q_DEF);  //队列

MQMessage  theMessage     = new MQMessage();

MQGetMessageOptions gmo = new MQGetMessageOptions();

queue.get(theMessage,gmo);

//System.out.println("the message length is:"+theMessage.getDataLength());

//int i=theMessage.getDataLength();

System.out.println("the message is:"+theMessage.readLine());

queue.close();

qmgr.disconnect();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值