Hi 

If this is occurring, it sounds like a bug. 

This is a community project, so if you are able to create a unit test case that 
replicates the issue, it certainly help the community to validate if it is a 
bug or not, and also validate any fix the community may do.

if you look here, for current tests, and use these as a basis for your test
https://github.com/apache/activemq-artemis/tree/master/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration

Once you have that, if you create a JIRA with the test attached, it would help.

Best
Mike

> On 6 Jun 2019, at 22:05, bob.sandif...@sirsidynix.com wrote:
> 
> I have an ActiveMQ server set up where I have multiple (and unbounded) queues
> which differ only in the last component.  e.g. myqueue.1, myqueue.2,
> myqueue.4, etc.  The last component is from a database that will have a
> varying set of customers defined - and I want to set up one queue for each
> customer.  (I want a separate queue - the third party we're talking to needs
> throttling at our 'customer' level.  The address setting looks like this in
> broker.xml:
> 
>      <address-setting match="myqueue.#">
>        <dead-letter-address>myqueue.DLQ</dead-letter-address>
>        <expiry-address>myqueue.ExpiryQueue</expiry-address>
>        <redelivery-delay>500</redelivery-delay>
> 
>        <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>
>        <max-delivery-attempts>3</max-delivery-attempts>
>      </address-setting>
> 
> I have a producer that creates the queue name based on the customer key, and
> uses JmsMessagingTemplate.convertAndSent(queueName, message).
> 
> I have a consumer annotated like this:
> 
>    @JmsListener(destination = "myqueue.#", containerFactory =
> "throttledLongCodeFactory")
>    public void processLongCodeMessage1(Session session,
> Message<MessageRequest> message) throws JMSException {
>        ... do the message handling - no ActiveMQ accesses in here...
>        session.commit();
>    }
> 
> FWIW, here's the code for the throttledLongCodeFactory:
> 
>   @Bean
>    public DefaultJmsListenerContainerFactory throttledLongCodeFactory(
>            DefaultJmsListenerContainerFactoryConfigurer configurer) {
> 
>        ActiveMQConnectionFactory connectionFactory =
> createActiveMQConnectionFactory();
> 
>        Integer maxConsumerRate =
> appProperties.getArtemis().getLongCode().getMaxConsumerRate();
> 
>        // For throttling.  Used to limit the number of messages a consumer
> will handle per second.  Default is -1.
>        if (maxConsumerRate != null) {
>            connectionFactory.setConsumerMaxRate(maxConsumerRate);
>        }
> 
>        DefaultJmsListenerContainerFactory factory = new
> DefaultJmsListenerContainerFactory();
>        // This provides all boot's default to this factory, including the
> message converter
>        configurer.configure(factory, connectionFactory);
> 
>        return factory;
>    }
> 
> What I'm finding in looking at the ActiveMQ Management Console is that the
> consumer ACK's are going to a (new) queue "myqueue.#" (i.e. literally has
> the '#' in the name), rather than the actual source queue for each message. 
> In the consumer, I can see the actual source queue name (e.g. "myqueue.2")
> by inspecting the ClientMessageImpl field 'address'.
> 
> What I'd like is for the ACK's to go to the source queue.  the way it is, my
> specific queues are just building up the number of messages they contain,
> which isn't doing the Artemis server memory any good.
> 
> Any thoughts on how to make this work?
> 
> thanks!
> 
> 
> 
> 
> 
> --
> Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html

Reply via email to