Hi all,

Is it possible to have a wildcard consumer acknownledge messages in their
originally addressed queues?

I'm attempting to consume messages from multiple dynamically created anycast
JMS queues in Artemis. For that purpose I created a consumer for a wildcard
adress. The wildcard matches a some dynamically created anycast queue names.
All named queues have the same the message processing, but each address have
a different external message recipient endpoint.

E.g:

1. Create consumer C for wildcard address "q.#".

2. Submit a message to anycast adress "q.a".

3. Have C receive the message from "q.a" via its subscription to "q.#".

4. Have the message on the anycast queue "q.a" acknowledged when the
   consumer C in step 3 acknowledges the message it consumed from "q.#".

Step 1 - 3 works, step 4 doesn't.

While the message submitted to "q.a" is delivered to the consumer, it seems
that the message on "q.a" remains in that queue even after C has consumed it
on "q.#". Did C consume a copy?

The purpose of this setup is to be able to have a static configuration of a
message listener for multiple destinations that can be modified at runtime.

The purpose of separating the endpoints by queue names is to simplify
monitoring of throughput and backlog per endpoint by queue name, and to
avoid head of line blocking between unrelated target endpoints.

Is this approach, or something like it supported? Is there an alternative?

I read about diverts, but AFAIU, what I need is "fan-in" rather than a fan-out,
and I'd like the messages to stay in their original queues until consumed.

As always, any hints appreciated. :)

-- 
Fredrik Jonson


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@activemq.apache.org
For additional commands, e-mail: users-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to