В ActiveMQ Artemis 2.4.0 повторная доставка игнорируется
Я настроил Artemis для повторной отправки сбойных сообщений, таких как (broker.xml):
<address-setting match="#">
<dead-letter-address>DLQ</dead-letter-address>
<expiry-address>ExpiryQueue</expiry-address>
<!-- with -1 only the global-max-size is in use for limiting -->
<max-size-bytes>-1</max-size-bytes>
<message-counter-history-day-limit>10</message-counter-history-day-limit>
<address-full-policy>PAGE</address-full-policy>
<auto-create-queues>true</auto-create-queues>
<auto-create-addresses>true</auto-create-addresses>
<auto-create-jms-queues>true</auto-create-jms-queues>
<auto-create-jms-topics>true</auto-create-jms-topics>`enter code here`
<max-delivery-attempts>3</max-delivery-attempts>
<redelivery-delay>30000</redelivery-delay>
<max-redelivery-delay>30000</max-redelivery-delay>
</address-setting>
[...]
<address-setting match="email">
<redelivery-delay-multiplier>3</redelivery-delay-multiplier>
<redelivery-delay>60000</redelivery-delay>
<max-redelivery-delay>86400000</max-redelivery-delay>
</address-setting>
[...]
<addresses>
<address name="email">
<anycast>
<queue name="email" />
</anycast>
</address>
</addresses>
Я использую Springboot в качестве отправителя и получателя. После отправки сообщения в очередь оно появляется в очереди Артемиды и вызывается получатель. Обработка не удалась. Но вместо того, чтобы поместить сообщение обратно в очередь и попытаться повторно доставить его, это происходит:
09:57:37,672 WARN [org.apache.activemq.artemis.core.server] AMQ222149: Message Reference[53]:RELIABLE:CoreMessage[messageID=53,durable=true,userID=null,priority=4, timestamp=Mon Jan 29 09:57:37 UTC 2018,expiration=0, durable=
true, address=email,properties=TypedProperties[__HDR_dlqDeliveryFailureCause=java.lang.Throwable: Delivery[1] exceeds redelivery policy limit:RedeliveryPolicy {destination = null, collisionAvoidanceFactor = 0.15, maximumRedeli
veries = 0, maximumRedeliveryDelay = -1, initialRedeliveryDelay = 1000, useCollisionAvoidance = false, useExponentialBackOff = false, backOffMultiplier = 5.0, redeliveryDelay = 1000, preDispatchCheck = true}, cause:null,__HDR_
BROKER_IN_TIME=1517219857591,interaction_id=b0b5cb2c618f4605a11ad599dfd7f54b,_AMQ_ROUTING_TYPE=1,__HDR_ARRIVAL=0,__HDR_GROUP_SEQUENCE=0,__HDR_COMMAND_ID=36,__HDR_MARSHALL_PROP=[0000 0001 000E 696E 7465 7261 6374 696F 6E5F 6964
0900 2062 3062 3563 6232 6336 3138 6634 3630 3561 3131 6164 3539 3964 6664 3766 3534 62),__HDR_PRODUCER_ID=[0000 003D 7B01 0029 4944 3A64 652D 6164 6E2D 6266 786A 6E63 322D 3532 3232 ... 37 3231 3934 3238 3032 362D 313A 3100
0000 0000 0000 0100 0000 0000 0000 09),_AMQ_DUPL_ID=ID:de-adn-bfxjnc2-52228-1517219428026-1:1:9:1:3,__HDR_MESSAGE_ID=[0000 0050 6E00 017B 0100 2949 443A 6465 2D61 646E 2D62 6678 6A6E 6332 2D35 ... 0000 0000 0001 0000 0000 0
000 0009 0000 0000 0000 0003 0000 0000 0000 0000),__HDR_DROPPABLE=false]]@693556289 has reached maximum delivery attempts, sending it to Dead Letter Address DLQ from email
Мне кажется, что моя конфигурация полностью игнорируется. Кто-нибудь может сказать мне, что написано в моей конфигурации?