В этом фрагменте кода я пытаюсь создать Redelivery полицию только лишь для сообщений в определенной теме:полиция ActiveMQ Redelivery только для сообщения Контейнер
RedeliveryPolicy redeliveryPolicy = new RedeliveryPolicy();
emailByFolioRedeliveryPolicy.setInitialRedeliveryDelay(5000);
emailByFolioRedeliveryPolicy.setRedeliveryDelay(5000);
emailByFolioRedeliveryPolicy.setUseExponentialBackOff(false);
emailByFolioRedeliveryPolicy.setBackOffMultiplier(10);
emailByFolioRedeliveryPolicy.setMaximumRedeliveries(3);
PooledConnectionFactory connPool = new PooledConnectionFactory();
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
RedeliveryPolicyMap redeliveryPolicyMap = connectionFactory.getRedeliveryPolicyMap();
redeliveryPolicyMap.put(new ActiveMQTopic("VirtualTopic.firstTopic"), redeliveryPolicy);
connPool.setConnectionFactory(connectionFactory);
connPool.setCreateConnectionOnStartup(true);
connPool.setMaxConnections(20);
return connPool;
Проблема заключается в том, что сообщения являются отправленные на другую тему (VirtualTopic.secondTopic), также влияют на эту политику, потому что я вижу, что слушатель второй темы обрабатывает повторно отправленные сообщения. В RedeliveryPolicyMap я добавляю политику, определяющую Destination. Но по какой-то причине я не могу заставить его работать, как ожидалось.
Ожидаемым является:
- Новое сообщение А отправил на "VirtualTopic.firstTopic"
- Новое сообщение B опубликовано в "VirtualTopic.secondTopic"
- Слушатель «Consume.FIRST .VirtualTopic.firstTopic»на„VirtualTopic.firstTopic“будет обрабатывать сообщение A.
- слушатель„Consume.SECOND.VirtualTopic.firstTopic“на„VirtualTopic.secondTopic“будет обрабатывать сообщение B.
- Если й e FIRST прослушиватель не сможет выполнить повторную попытку через 15 минут.
- Если ВТОРОЙ прослушиватель терпит неудачу, ничего не происходит. Сообщение закончится в очереди мертвых букв.
Я взял конфигурацию с этой страницы:
http://activemq.apache.org/redelivery-policy.html
ли кто-нибудь совершил что-то вроде этого? Благодарю.
это решило проблему? –