You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by "Dondorp, Erwin" <er...@cgi.com.INVALID> on 2023/01/16 02:47:30 UTC

default address type question

Hello,

I have an address "a/b/c/demo/demodata" that I use with AMQP messaging.
The jmx function "getAddressSettingsAsJSON()" for this address reports that {...,"defaultQueueRoutingType":"MULTICAST","defaultAddressRoutingType":"MULTICAST",... } , which is as expected from my address-settings.

When the producer is started first, then the address is seen to be auto-created as MULTICAST.
But when the consumer is started first, then the address is unexpectedly auto-created as ANYCAST.

In https://github.com/apache/activemq-artemis/pull/3124, @jbertram wrote:
[...] When auto-creating resources the routing type is based on the following (in descending order of precedence):
1. The terminus capability set on the link as described in section 5.2 of the AMQP-to-JMS mapping document<https://www.oasis-open.org/committees/download.php/60574/amqp-bindmap-jms-v1.0.pdf>.
2. The prefix<http://activemq.apache.org/components/artemis/documentation/latest/address-model.html#using-prefixes-to-determine-routing-type> set on the acceptor.
3. The dynamic default routing-type set in the address-settings.
4. The static default routing-type<https://github.com/apache/activemq-artemis/blob/master/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/config/ActiveMQDefaultConfiguration.java#L537> set the the code-base.

Since (1) and (2) do not apply in my case, option (3) should determine the result. But that should give a consistent decision.

What can explain the use of ANYCAST here?

Thx!
Erwin

Re: default address type question

Posted by Justin Bertram <jb...@apache.org>.
This sounds like a bug. Do you have code to reproduce this?


Justin

On Sun, Jan 15, 2023 at 8:48 PM Dondorp, Erwin
<er...@cgi.com.invalid> wrote:

> Hello,
>
> I have an address "a/b/c/demo/demodata" that I use with AMQP messaging.
> The jmx function "getAddressSettingsAsJSON()" for this address reports
> that
> {...,"defaultQueueRoutingType":"MULTICAST","defaultAddressRoutingType":"MULTICAST",...
> } , which is as expected from my address-settings.
>
> When the producer is started first, then the address is seen to be
> auto-created as MULTICAST.
> But when the consumer is started first, then the address is unexpectedly
> auto-created as ANYCAST.
>
> In https://github.com/apache/activemq-artemis/pull/3124, @jbertram wrote:
> [...] When auto-creating resources the routing type is based on the
> following (in descending order of precedence):
> 1. The terminus capability set on the link as described in section 5.2 of
> the AMQP-to-JMS mapping document<
> https://www.oasis-open.org/committees/download.php/60574/amqp-bindmap-jms-v1.0.pdf
> >.
> 2. The prefix<
> http://activemq.apache.org/components/artemis/documentation/latest/address-model.html#using-prefixes-to-determine-routing-type>
> set on the acceptor.
> 3. The dynamic default routing-type set in the address-settings.
> 4. The static default routing-type<
> https://github.com/apache/activemq-artemis/blob/master/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/config/ActiveMQDefaultConfiguration.java#L537>
> set the the code-base.
>
> Since (1) and (2) do not apply in my case, option (3) should determine the
> result. But that should give a consistent decision.
>
> What can explain the use of ANYCAST here?
>
> Thx!
> Erwin
>