繁体   English   中英

IBM MQ的侦听器

[英]Listener for IBM MQ

我正在尝试为IBM MQ queue创建侦听器,以使用本机API将消息放入队列时读取消息。

最好使用Thread / TimerTask每秒执行一次GET。

我需要使用CCDT,用户名和密码进行身份验证。

有没有可用的默认监听器? 使用下面的代码阅读

MQMessage theMessage    = new MQMessage();
MQGetMessageOptions mqGetMessageOptions = new MQGetMessageOptions();

mqGetMessageOptions.options=MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_FIRST;
mqGetMessageOptions.matchOptions=MQC.MQMO_NONE;
mqGetMessageOptions.waitInterval=5000;
try{
        //read the message from queue          
queue.get(theMessage,mqGetMessageOptions);  
  mqGetMessageOptions.options = MQC.MQGMO_MSG_UNDER_CURSOR;

    queue.get(theMessage, mqGetMessageOptions);

您的代码是浏览消息而不是使用消息(差异很大)。

其次,您应该始终使用MQC.MQGMO_FAIL_IF_QUIESCING选项。

mqGetMessageOptions.options=MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_FIRST | MQC.MQGMO_FAIL_IF_QUIESCING;

第三,不要使用轮询来访问队列-您的线程/计时器提示。 这是浪费资源。 您已经为MQGET定义了5秒的等待间隔,如果间隔不够长,则将其增加到更合理的范围。

最后,为什么将这个问题标记为“ JMS”。 您的问题与JMS没有任何关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM