Я работаю над приложением ActiveMQ, где iam использует пользователя, который использует Session.CLIENT_ACKNOWLEDGE.Как получить старые сообщения в очереди ActiveMQ
Iam отправляет сообщения, полученные из очереди в потребитель, в webservice. Если я надену message.acknowledge(), все сообщения, отправленные в webservice, вернутся в очередь в состоянии очереди.
Мой вопрос заключается в том, чтобы получить сообщения снова из очереди и использовать it.I используется ретроактивный = истинный и попытался Redelivery также, но все они терпят неудачу.
Как этого избежать.
Логика проста Я получаю сообщение от activemq, отправляю его в webservice, если я получаю 200OK, я делаю message.acknowledge(), и если я получаю что-либо, кроме 200 OK, я не хочу выполнять message.acknowledge(), который делает сообщение возвращается в состояние enqueued, и я хочу повторить отправку сообщения снова. Как это сделать –
Я обновил свой ответ, по умолчанию: постоянные очереди (значение по умолчанию: 1000) непостоянные очереди (значение по умолчанию: 1000). Это означает, что если вы не подтвердите 500 первых сообщений, то брокер не отправит вашему потребителю какое-либо сообщение до подтверждения –
Есть ли другой способ удалить старые сообщения, которые находятся в очереди? Фактически, я столкнулся с такой же проблемой при работе с истекшим сроком действия сообщений. –