MessageListener,它将获取并发消息 [英] MessageListener, will it get concurrent messages

查看:637
本文介绍了MessageListener,它将获取并发消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用XMS 7.5客户端访问IBM MQ,并且想了解有关MessageListener的一件事. 当队列中存在多条消息时,

I'm using XMS 7.5 client to access the IBM MQ and wanted to know one thing about MessageListener. When there are multiple messages are present on the queue,

  • 是否会同时调用关联的MessageListener方法(即以下代码中的ProcessNewMessage)?或
  • 仅一次将消息分派到MessageListener(即下面的代码中的ProcessNewMessage)方法吗?

代码如下:

private XMSFactoryFactory xMSFactoryFactory;
private IConnectionFactory connectionFactory;
private IConnection connectionWMQ;
private ISession sessionWMQ;
private IDestination destination;
private IMessageConsumer messageConsumer;

xMSFactoryFactory= XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
connectionFactory = _xMSFactoryFactory.CreateConnectionFactory();
// Set queue manager name, set server names, channel, use
// XMSC.WMQ_CM_CLIENT as WMQ_CONNECTION_MODE

connectionWMQ = _connectionFactory.CreateConnection();
sessionWMQ = _connectionWMQ.CreateSession(true, AcknowledgeMode.SessionTransacted);
destination = sessionWMQ.CreateQueue(_queueSettings.QueueName);
messageConsumer = sessionWMQ.CreateConsumer(_destination);


messageConsumer.MessageListener = new MessageListener(ProcessNewMessage)

推荐答案

一次将一条消息传递给使用者,使用者是否正在调用receive()或已设置消息侦听器来接收消息都没有关系.

Messages are delivered one at a time to consumer, it does not matter whether the consumer is calling receive() or has setup a message listener to receive messages.

在使用消息侦听器的情况下,MQ将等待OnMessage(在您的情况下为ProcessNewMessage)方法返回,然后再传递下一条合适的消息.

In case of a message listener, MQ will wait for the OnMessage (in your case ProcessNewMessage) method to return before delivering the next suitable message.

这篇关于MessageListener,它将获取并发消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆