每当我启动我的订户时,它就不会出现在我的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