如何使用Apache camel / Sprint-boot订阅Durable TOPIC?

时间:2017-10-16 06:20:08

标签: java spring-boot apache-camel activemq spring-jms

每当我启动我的订阅者时,它都没有出现在我的activeMQ下的" Active Durable Topic Subscribers"部分。这意味着它还不是一个持久的主题订阅者。我怎样才能让它成为持久的用户?

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;

P.S:适用于非持久用户。我添加了以下代码,试图使其持久耐用。我错过了什么吗?我还需要添加其他内容吗?

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

1 个答案:

答案 0 :(得分:0)

我通过将订阅详细信息作为查询字符串参数传递给它,如下所示;

myapp.jms.topic.inbound1 = JMS:主题:myFirstTopic的clientId = ABC&安培; durableSubscriptionName = ABC

myapp.jms.topic.inbound2 = JMS:主题:mysecondTopic的clientId = XYZ&安培; durableSubscriptionName = XYZ