Использовать рекомендательные сообщения ActiveMQ в tomEE mdb
У меня есть MDB, которому удается использовать консультативные сообщения ActiveMQ при развертывании на Glassfish.
Но при развертывании на tomEE этот MDB не потребляет никаких консультативных сообщений. Есть ли что-то, что мне нужно включить?
@MessageDriven(mappedName = "ActiveMQ.Advisory.Consumer.Queue", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "ActiveMQ.Advisory.Consumer.Queue.User.*") })
public class AdvisoryMdb implements MessageListener {
private final Logger logger = LoggerFactory.getLogger(getClass().getName());
@Override
public void onMessage(Message message) {
logger.info("onMessage() {}", message);
}
}
(В TomEE мне удается успешно создавать и потреблять сообщения в этих очередях, для которых я хочу получать рекомендации)
редактировать: я проверил, чтобы потреблять по одной из этих консультативных тем с автономным клиентом и получил сообщения, как ожидалось. Таким образом, консультативные сообщения успешно отправлены, просто мой mdb не принимает их правильно.
2 ответа
Случайно я попытался удалить
mappedName = "ActiveMQ.Advisory.Consumer.Queue"
из аннотации @MessageDriven, и вдруг он работает как на TomEE, так и на Glassfish. Не уверен, почему я добавил это, во-первых, думаю, что это не было необходимо для стеклянной рыбы.
Какие консультативные сообщения вы пытаетесь использовать?
Взгляните на документацию здесь... Я вижу ActiveMQ.Advisory.Consumer.Queue
Это означает, что сообщения " Пуск и остановка потребителя" в очереди. Ваша цель ActiveMQ.Advisory.Consumer.Queue.User.*
, Так у вас есть очередь называется User
? Это единственная очередь или есть несколько очередей под User
?
Также, читая документ, похоже, что за годы имен Консультативных очередей произошли некоторые изменения. Можете ли вы проверить версии ActiveMQ на разных платформах и убедиться, что вы сравниваете яблоки с яблоками? Кроме того, на странице документации, которую я перечислил, мне интересно, отключены ли некоторые рекомендации. В ней не указана та конкретная очередь, которую можно отключить, но вы можете попробовать явно включить все рекомендации и посмотреть, поможет ли это.