带有receiveNoWait()的消息选择器

问题描述 投票:0回答:2

对于同步进程,消息选择器是否也适用于receiveNowait()方法。它适用于receive()方法,但想知道IBM mq的receiveNoWait。创建使用者时添加消息选择器。

编辑1:我已经使用receiveNowait()方法进行了测试,并且选择器无法正常工作。我不知道问题出在我的选择器或receivenowait方法上。以下是我使用的选择器:

String messageSelector = "JMSTimestamp <= " + System.currentTimeMillis() - 180000;
 receiver = (MessageConsumer) session.createConsumer(replyQueue, messageSelector);

这意味着,接收方必须只接收比当前时间早3分钟的消息。任何人都可以找出问题所在。

编辑2:完成测试后,我发现问题在于选择器,在选择器表达式中JMSTimeStamp的正确用法是什么?

java jms selector ibm-mq
2个回答
0
投票

receive(),receive(long timeout)和receiveNoWait()在传递的内容方面应该完全相同。事实上,有几个实现通过调用另一个方法实现一个


0
投票

我不能特别谈到IBM MQ实现,但是从JMS的角度来看,JMS规范中没有任何内容限制使用receiveNoWait选择器的使用,所以我希望它可以在任何兼容的实现中工作。

© www.soinside.com 2019 - 2024. All rights reserved.