You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2019/04/10 18:06:00 UTC

[jira] [Work logged] (ARTEMIS-2299) Using redelivery-delay and LastValueQueues is not defined and leads to queue blockage

     [ https://issues.apache.org/jira/browse/ARTEMIS-2299?focusedWorklogId=225755&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-225755 ]

ASF GitHub Bot logged work on ARTEMIS-2299:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 10/Apr/19 18:05
            Start Date: 10/Apr/19 18:05
    Worklog Time Spent: 10m 
      Work Description: clebertsuconic commented on pull request #2614: ARTEMIS-2299 Support for redelivery-delay and LVQ
URL: https://github.com/apache/activemq-artemis/pull/2614
 
 
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 225755)
            Time Spent: 10m
    Remaining Estimate: 0h

> Using redelivery-delay and LastValueQueues is not defined and leads to queue blockage
> -------------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-2299
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2299
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.7.0
>            Reporter: Matthew Robson
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Setting last-value-queue with redelivery options has no implemented logic. No retry occurs and ultimately the queue becomes blocked for on consumptions for all subsequent messages.
> {code:java}
>                     <address-setting match="jms.queue.TestQueue">
>                         <dead-letter-address>jms.queue.DLQ2</dead-letter-address>
>                         <expiry-address>jms.queue.ExpiryQueue</expiry-address>
>                         <redelivery-delay>1000</redelivery-delay>
>                         <max-delivery-attempts>50</max-delivery-attempts>
>                         <max-size-bytes>10485760</max-size-bytes>
>                         <page-size-bytes>2097152</page-size-bytes>
>                         <address-full-policy>PAGE</address-full-policy>
>                         <message-counter-history-day-limit>10</message-counter-history-day-limit>
>                         <last-value-queue>true</last-value-queue>
>                         <redistribution-delay>1000</redistribution-delay>
>                     </address-setting>
> {code}
> Test
> {code:java}
> @Test
> public void testMultipleRollback() throws Exception
> {
>    AddressSettings qs = new AddressSettings();
>    qs.setLastValueQueue(true);
>    qs.setRedeliveryDelay(100);
>    server.getAddressSettingsRepository().addMatch(address.toString(), qs);
>    ClientProducer producer = clientSessionTxReceives.createProducer(address);
>    ClientConsumer consumer = clientSessionTxReceives.createConsumer(qName1);
>    SimpleString messageId1 = new SimpleString("SMID1");
>    ClientMessage m1 = createTextMessage(clientSession, "m1");
>    m1.putStringProperty(Message.HDR_LAST_VALUE_NAME, messageId1);
>    producer.send(m1);
>    clientSessionTxReceives.start();
>    for (int i  = 0; i < 10; i++)
>    {
>       ClientMessage m = consumer.receive(5000);
>       Assert.assertNotNull(m);
>       m.acknowledge();
>       clientSessionTxReceives.rollback();
>    }
>    m1 = createTextMessage(clientSession, "m1");
>    m1.putStringProperty(Message.HDR_LAST_VALUE_NAME, messageId1);
>    producer.send(m1);
>    ClientMessage m = consumer.receive(1000);
>    Assert.assertNotNull(m);
>    m.acknowledge();
>    Assert.assertEquals(m.getBodyBuffer().readString(), "m1");
>    Assert.assertNull(consumer.receiveImmediate());
>    clientSessionTxReceives.commit();
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)