Сообщения удаляются из очереди после операции чтения в IBM MQ? - PullRequest
0 голосов
/ 08 мая 2018

Я использую Nifi для получения данных из IBM MQ. Работает нормально. Мой вопрос: как только сообщение прочитано из очереди MQ, оно удаляется из очереди? Как просто прочитать сообщения из очереди, не удаляя их из очереди?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Мой вопрос: когда сообщение прочитано из очереди MQ, оно получает удален из очереди?

Да, это поведение по умолчанию.

Как просто читать сообщения из очереди, не удаляя их из очередь?

Вы используете параметр: MQGMO_BROWSE_FIRST, за которым следует MQGMO_BROWSE_NEXT в вызовах API MQGET.

Вы также можете открыть очередь только для просмотра. то есть опция MQOO_BROWSE для вызова API MQOPEN.

0 голосов
/ 09 мая 2018

Звучит так, как будто вы хотите использовать модель «публикация / подписка», а не модель «точка-точка».

С ActiveMQ :

Темы В JMS в Теме реализована семантика публикации и подписки. когда Вы публикуете сообщение, оно отправляется всем подписчикам, которые интересно - так что ноль для многих подписчиков получит копию сообщение. Только подписчики, у которых была активная подписка в то время брокер, получивший сообщение, получит копию сообщения.

Очереди Очередь JMS реализует семантику балансировки нагрузки. Один сообщение будет получено ровно одним потребителем. Если нет потребители, доступные на момент отправки сообщения, будут сохранены пока потребитель не доступен, который может обработать сообщение. Если потребитель получает сообщение и не подтверждает его перед закрытием тогда сообщение будет доставлено другому потребителю. Очередь может много потребителей с балансировкой нагрузки сообщений по доступным потребители.

Если у вас есть очередь, когда получатель потребляет это сообщение, оно удаляется из очереди, так что следующий получатель потребляет следующее сообщение. С темой несколько потребителей могут быть подписаны на эту тему и получать одно и то же сообщение, не будучи эксклюзивным.

Если ни один из этих способов не работает для вас, я не уверен, какую семантику вы ищете - «очередь», которая не удаляет сообщение при его использовании, никогда не даст потребителю доступ к любому, кроме первого сообщение.

...