我有一个主题,我希望消费者使用lastImageSubscriptionRecoveryPolicy追溯订阅。我没有使用配置文件,我通过Java代码指定所有内容。我正在创建如下主题:
session.createTopic("a.topic?consumer.retroactive=true");
如何在Java代码中为此主题指定这应该是lastImageSubscriptionRecoveryPolicy?注意:我不想指定我的所有主题都是lastImageSubscriptionRecoveryPolicy(因此我不想调用broker.setDestinationPolicy(pMap);)。
答案 0 :(得分:1)
这不是我想要的,但它足够接近:
PolicyMap policyMap = broker.getDestinationPolicy();
PolicyEntry policy = new PolicyEntry();
policy.setSubscriptionRecoveryPolicy( new LastImageSubscriptionRecoveryPolicy() );
ActiveMQDestination destination = (ActiveMQDestination) session.createTopic(
"a.topic" );
policyMap.put( destination, policy );