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 subversion and git services (JIRA)" <ji...@apache.org> on 2019/04/10 20:02:00 UTC

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

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

ASF subversion and git services commented on ARTEMIS-2299:
----------------------------------------------------------

Commit 9e45a4ac3a67c9aa56e6c07e845d4019f6783a8d in activemq-artemis's branch refs/heads/master from Clebert Suconic
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=9e45a4a ]

ARTEMIS-2299 Support for redelivery-delay and LVQ


> 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)