2015-06-30 4 views
3

В настоящее время у меня есть очередь на моем сервере ActiveMQ под названием hello.world. Всякий раз, когда сообщение не обрабатывается, ActiveMQ создает каталог по умолчанию ActiveMQ.DLQ. Можно ли изменить это имя на что-то вроде hello.world.DLQ? Причина в том, что я мог бы иметь несколько очередей в будущем, и я хочу, чтобы это было что-то вроде <queue_name>.DLQВозможно ли иметь очередь с мертвой буквой для отдельных очередей

ответ

5

вещи, которую вы ищете, называется Individual Dead letter Queue strategy, в этом процессе ActiveMQ создает специфическую DLQ для каждой очереди/темы,

можно реализовать следующим образом, путем настройки вашей activemq.xml немного

<destinationPolicy> 
    <policyMap> 
     <policyEntries> 
     <policyEntry queue=">"> <!-- '>' is the wildcard used in ActiveMQ which means for all queues, i.e. same as '*' in any other language --> 
     <!-- need to add the following lines in you conf file --> 
      <deadLetterStrategy> 
      <individualDeadLetterStrategy 
       queuePrefix="DLQ." useQueueForQueueMessages="true" /> 
      </deadLetterStrategy> 
     </policyEntry> 
     </policyEntries> 
    </policyMap> 
    </destinationPolicy> 

эту конфигурацию будет создавать DLQ с именами, как DLQ.<queue_name>, если вы не хотите, префикс, вы можете удалить queuePrefix атрибут.

надеюсь, что это поможет!

Удачи вам!

+0

Да, это так! Спасибо! – mpmp