This should be resolved as a corollary change in the next release via
ARTEMIS-966 [1].

The solution is close to the second option you proposed. Clients using
different acceptors will *not* be able to connect concurrently. However,
the link-stealing behavior will be based on whatever is configured on the
acceptor which the client used.


Justin

[1] https://issues.apache.org/jira/browse/ARTEMIS-966

On Fri, Aug 25, 2023 at 3:20 AM andrea bisogno <bisoma...@hotmail.it> wrote:

> Hi support,
>
> I observed an unexpected behavior while testing the Artemis Broker (v
> 2.29.0):
>
> if we have two MQTT connections with the same clientId open at the same
> time (possible only with two clients opening two different connections with
> same clientId to different MQTT acceptors/ports, regardless of the stealing
> link configuration that is on acceptor base), messages are balanced among
> the two subscribers: this means each subscriber receives half of the data.
>
> In my opinion, the expected behavior should be one of these two:
>
>   *   if it is possible to keep open different MQTT connections with the
> same clientId on different acceptors, all the subscribers should receive
> all the data. This because there is no way to prevent a second MQTT client
> opens a connection to a different acceptor with a clientId already used,
> and in that case it is not correct to prevent the first client to receive
> all the messages
>   *   on the other side, probably it should not be possible to have two
> MQTT connections with the same clientId open at the same time (regardless
> of the target acceptor), and the stealing link configuration should became
> a global setting, and not a setting on acceptor base. In fact, in case we
> can only have a single connection with a given clientId for all the
> acceptors, the user should be free to choose which connection to keep open
> (the first one or the second one), regardless the target acceptor
>
> What do you think?
>
> Have a nice weekend,
>
> Andrea
>
>

Reply via email to