Проблема долговечности с ActiveMQ-cpp и stomp

У меня проблема с созданием надежных потребителей и производителей с протоколом ActiveMQ-CPP и stomp. Я пытаюсь подключиться к HornetQ с помощью stomp и могу отправлять и получать сообщения в неустойчивом состоянии. Я попытался изменить производителя на устойчивый, установив его режим доставки на постоянный вместе с CMSDeliveryMode сообщений и создав DurableConsumer вместо обычного потребителя. Но когда я посмотрел на JBoss JMX-Console, оба они были признаны недолговечными (сообщения классифицируются как недолговечные, а потребители также подписываются как недолговечные).

Я даже попробовал интеграционный тест StompDurableTest и получил только 10 из 20 сообщений (те, которые были отправлены, когда потребитель активен). Итак, тест провален.

Поскольку интеграционный тест не сработал, я предполагаю, что это связано с конфигурациями ActiveMQ-cpp или Stomp, а не с кодом. Я что-то упустил, чтобы обеспечить долговечность?

Заранее спасибо,

саамы


person Sami    schedule 23.12.2010    source источник


Ответы (1)


Не знаю, как работает HornetMQ, но я видел, что у других были проблемы с именами назначения, потому что шершню не нравятся префиксы /topic и /queue, которые CMS добавляет для работы с ActiveMQ.

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

С уважением Тим

www.fusesource.com

person Tim Bish    schedule 23.12.2010
comment
Спасибо Тим за ответ. Я уже изменил /queue/ и /topic/ на jms.queue. & jms.topic. из источника ActiveMQ, и установите для имени подписки значение client-id в режиме устойчивости, но безуспешно. Я могу успешно получать, когда потребитель активен, проблема в том, что он подписан и не активен. - person Sami; 23.12.2010