You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by abhijith <to...@gmail.com> on 2017/06/16 20:12:41 UTC

Artemis v2.1 divert

Hi

We are having a topic on which a divert is configured.  Every message sent
to topic has to be diverted to queue. 

Divert:

<divert name="test-divert01">
    <address>jms.topic.testtopic01</address>
    <forwarding-address>jms.queue.testqueue01</forwarding-address>
    <exclusive>false</exclusive>
</divert>

Address:
<address name="jms.topic.testtopic01">
    <multicast/>
</address>
<address name="jms.queue.testqueue01">
    <anycast>
     <queue name="jms.queue.testqueue01"/>
    </anycast>
</address>

DLQ

 
            <address-setting match="#">
                <dead-letter-address>jms.queue.DLQ</dead-letter-address>
                <expiry-address>jms.queue.ExpiryQueue</expiry-address>
                
                <redelivery-delay>10000</redelivery-delay>
               
<redelivery-delay-multiplier>5.0</redelivery-delay-multiplier>
                <max-redelivery-delay>5400000</max-redelivery-delay>
                <max-delivery-attempts>6</max-delivery-attempts>
                <redistribution-delay>0</redistribution-delay>
                <send-to-dla-on-no-route>true</send-to-dla-on-no-route>
                
                <max-size-bytes>31457280</max-size-bytes>
                
                <page-size-bytes>1048576</page-size-bytes>
                <address-full-policy>PAGE</address-full-policy>
            </address-setting>

Now we are seeing some strange behavior and wanted to check.  

When divert is marked exclusive=false, message gets routed to queue
successfully.  But message is kept on the address space in store.  Message
from store is not remove after routing.  Message just sits there and store
keeps on growing until it blows up.

When divert is marked exclusive=true, message gets routed to queue
successfully.  But a copy of the message is sent to DLQ as well.  Our DLQ
starts filling up and blows up after a while.

Wondering what is the expected behavior here.  What we want is when topic
marked as exclusive=false, message to be diverted and removed from topic
address space.  Is there any setting I can set it up that way?

Any help will be greatly appreciated.  Thanks.



--
View this message in context: http://activemq.2283324.n4.nabble.com/Artemis-v2-1-divert-tp4727498.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Artemis v2.1 divert

Posted by abhijith <to...@gmail.com>.
Thanks Justin.  <send-to-dla-on-no-route> flag was the reason for store
filling up.  We were thinking address itself is storing messages, but it was
DLQ.  Thanks for the help



--
View this message in context: http://activemq.2283324.n4.nabble.com/Artemis-v2-1-divert-tp4727498p4727759.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: Artemis v2.1 divert

Posted by Justin Bertram <jb...@redhat.com>.
> But message is kept on the address space in store.

Can you elaborate on what exactly you mean by this?


> <send-to-dla-on-no-route>true</send-to-dla-on-no-route>

Keep in mind that any message sent to any address without a queue binding
will then get routed to the dead-letter address.  This probably isn't what
you want as lots of messages (e.g. management notifications) will
accumulate in the DLA.


Justin

On Fri, Jun 16, 2017 at 3:12 PM, abhijith <to...@gmail.com>
wrote:

> Hi
>
> We are having a topic on which a divert is configured.  Every message sent
> to topic has to be diverted to queue.
>
> Divert:
>
> <divert name="test-divert01">
>     <address>jms.topic.testtopic01</address>
>     <forwarding-address>jms.queue.testqueue01</forwarding-address>
>     <exclusive>false</exclusive>
> </divert>
>
> Address:
> <address name="jms.topic.testtopic01">
>     <multicast/>
> </address>
> <address name="jms.queue.testqueue01">
>     <anycast>
>      <queue name="jms.queue.testqueue01"/>
>     </anycast>
> </address>
>
> DLQ
>
>
>             <address-setting match="#">
>                 <dead-letter-address>jms.queue.DLQ</dead-letter-address>
>                 <expiry-address>jms.queue.ExpiryQueue</expiry-address>
>
>                 <redelivery-delay>10000</redelivery-delay>
>
> <redelivery-delay-multiplier>5.0</redelivery-delay-multiplier>
>                 <max-redelivery-delay>5400000</max-redelivery-delay>
>                 <max-delivery-attempts>6</max-delivery-attempts>
>                 <redistribution-delay>0</redistribution-delay>
>                 <send-to-dla-on-no-route>true</send-to-dla-on-no-route>
>
>                 <max-size-bytes>31457280</max-size-bytes>
>
>                 <page-size-bytes>1048576</page-size-bytes>
>                 <address-full-policy>PAGE</address-full-policy>
>             </address-setting>
>
> Now we are seeing some strange behavior and wanted to check.
>
> When divert is marked exclusive=false, message gets routed to queue
> successfully.  But message is kept on the address space in store.  Message
> from store is not remove after routing.  Message just sits there and store
> keeps on growing until it blows up.
>
> When divert is marked exclusive=true, message gets routed to queue
> successfully.  But a copy of the message is sent to DLQ as well.  Our DLQ
> starts filling up and blows up after a while.
>
> Wondering what is the expected behavior here.  What we want is when topic
> marked as exclusive=false, message to be diverted and removed from topic
> address space.  Is there any setting I can set it up that way?
>
> Any help will be greatly appreciated.  Thanks.
>
>
>
> --
> View this message in context: http://activemq.2283324.n4.
> nabble.com/Artemis-v2-1-divert-tp4727498.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>