每当我启动我的订户时,它就不会出现在我的activeMQ的“活动持久主题订户”部分下。这意味着它还不是持久主题订阅者。我如何使其成为持久订阅者?

JmsComponent jmsComponent = JmsComponent
        .jmsComponentTransacted(connectionFactory, jmsTransactionManager);
// TODO
jmsComponent.setClientId(subscriptionClientId);
jmsComponent.setDurableSubscriptionName(subscriptionName);
jmsComponent.setSubscriptionDurable(true); // This is enabled by default
//jmsComponent.setMaxConcurrentConsumers(maxConcurrentConsumers);
jmsComponent.setAcknowledgementMode(Session.AUTO_ACKNOWLEDGE);

return jmsComponent;


附注:对于非持久性订阅者来说,它工作正常。我添加了以下代码,以使其持久。我想念什么吗?我还需要添加其他内容吗?

jmsComponent.setClientId(subscriptionClientId);
jmsComponent.setDurableSubscriptionName(subscriptionName);
jmsComponent.setSubscriptionDurable(true); // This is enabled by default

最佳答案

我通过将订阅详细信息作为查询字符串参数传递如下来使其工作:

myapp.jms.topic.inbound1 = jms:topic:myFirstTopic?clientId = ABC&durableSubscriptionName = ABC

myapp.jms.topic.inbound2 = jms:topic:mysecondTopic?clientId = XYZ&durableSubscriptionName = XYZ

09-13 01:04