Селектор сообщений с receiveNoWait () - PullRequest
0 голосов
/ 06 марта 2019

Будут ли селекторы сообщений работать с методом receiveNowait () для синхронного процесса.он работает с методом receive (), но хотел знать для receiveNoWait для IBM mq.Селектор сообщений добавляется при создании потребителя.

РЕДАКТИРОВАТЬ 1: я проверил с методом receiveNowait (), и селектор не работает.Я не знаю, проблема в моем селекторе или методе receivenowait.Ниже приводится селектор, который я использовал:

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

, что означает, что получатель должен получать только те сообщения, которые на 3 минуты старше текущего времени.Может кто-нибудь выяснить, в чем проблема.

РЕДАКТИРОВАТЬ 2: после завершения тестирования я обнаружил, что проблема с селектором, что может быть правильным использованием JMSTimeStamp в выражении селектора?

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

receive (), receive (long timeout) и receiveNoWait () должны работать точно так же с точки зрения того, что доставлено. Фактически несколько реализаций реализуют одну, вызывая другой метод.

0 голосов
/ 06 марта 2019

Я не могу говорить конкретно о реализации IBM MQ, но с точки зрения JMS в спецификации JMS нет ничего, что ограничивало бы использование селекторов с receiveNoWait, поэтому я ожидал бы, что оно будет работать в любой совместимой реализации.

...