This looks like a bug. Go ahead and create a Jira and attach your
reproducer. Thanks!


Justin

On Mon, Mar 8, 2021 at 4:30 AM Thorsten Meinl <thorsten.me...@knime.com>
wrote:

> So I did some debugging and I believe I have found a bug in Artemis.
> I create two topics, "t.*" and "t.123" (all using JMS). I register two
> consumers on both "t.*" and "t.123" and send a message to "t.123". If the
> consumers close both topics are correctly deleted from the broker.
> However, if
> I do *not* register a consumer to the more specific topic "t.123" its
> address
> will stay in the broker even after the consumer for "t.*" closes. The
> address
> "t.*" is correctly deleted, though. Reproducer it attached.
> The problem seems to be that in the second case no
> "bindingRemovedTimestamp"
> is set in the corresponding AddressInfo and hence it stays -1 and the
> adsress
> is not eligible for auto-deletion.
> If you confirm that this is indeed a bug I can open a ticket.
>
> Thorsten
>
>
>
> Am Freitag, 5. März 2021, 17:56:37 CET schrieb Justin Bertram:
> > I don't know if there's a way to see why it wasn't deleted from the web
> > console. You could always attach a debugger to the broker and inspect it
> > that way. I believe the two main classes involved here would be
> >
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.AddressQueue
> > Reaper and org.apache.activemq.artemis.core.server.impl.QueueManagerImpl.
> >
> > If you can work up a simple way to reproduce this I can take a closer
> look.
> > To this end I often recommend users create a variation of one of the
> > examples we ship with the broker. We ship a "topic-hierarchies" examples
> > which would probably be a good starting point.
> >
> >
> > Justin
> >
> > On Fri, Mar 5, 2021 at 10:44 AM Thorsten Meinl <thorsten.me...@knime.com
> >
> >
> > wrote:
> > > Hi,
> > >
> > > Am Freitag, 5. März 2021, 17:35:32 CET schrieb Justin Bertram:
> > > > First off, what version of ActiveMQ Artemis are you using?
> > >
> > > Sorry, forgot to mention: 2.16.0
> > >
> > > > Do you have auto-delete-addresses = true? If so, addresses *should*
> be
> > > > deleted automatically when they have no more bindings. The wildcard
> > >
> > > itself
> > >
> > > > is a binding so that's probably why the address isn't removed.
> > >
> > > Yes, auto-delete-addresses = true. During operation I can see the
> wilcard
> > > adress "jobs.\*" which *does* get auto-deleted after all consumers are
> > > gone.
> > > Also some other addresses (without wilcard consumers attached) get
> deleted
> > > but
> > > not the jobs.A, jobs.B, ... addresses.
> > > Is there a way to see why they would stay there? In the "Attributes"
> tab
> > > in
> > > the Artemis Console I can see "Address size", "All queue names" and
> > > "Binding
> > > names" and all three are 0 or empty.
> > >
> > > > I think using a single topic with selectors on the subscriptions is a
> > > > viable alternative. There shouldn't be any performance penalty and
> the
> > > > semantics should be exactly what you're looking for.
> > >
> > > OK, good to hear. The we may likely go that way.
> > >
> > > Thanks!
> > >
> > > Thorsten
> > >
> > > > On Fri, Mar 5, 2021 at 10:09 AM Thorsten Meinl <
> thorsten.me...@knime.com
> > > >
> > > > wrote:
> > > > > Hi,
> > > > >
> > > > > We are currently building an application using ActiveMQ Artemis.
> The
> > >
> > > rough
> > >
> > > > > setup is as follows: We have consumers that are interested in all
> > >
> > > messages
> > >
> > > > > and
> > > > > other consumers that are only interested in a subset. So far we
> have
> > >
> > > been
> > >
> > > > > using topic hierarchies. The first group of consumers listens on
> e.g.
> > > > > "jobs.*"
> > > > > whereas the others listens on "jobs.A", "jobs.B", etc. All
> addresses,
> > > > > topics,
> > > > > queues are auto-created. What we notice now is that even if all
> > >
> > > consumers
> > >
> > > > > are
> > > > > gone there are still addresses "jobs.A", "jobs.B", ... remaining
> even
> > > > > though
> > > > > they don't have anything attached to them any more. No consumers,
> no
> > > > > queues,
> > > > > nothing. Therefore the first question: why is this and how can we
> > >
> > > prevent
> > >
> > > > > it?
> > > > >
> > > > > An alternative approach would be to use just one topic "jobs" and
> > >
> > > filter
> > >
> > > > > messages with message selectors (e.g. "id=A", "id=B", ...). This
> would
> > > > > eliminate the issue above. The question is whether there is a
> > >
> > > performance
> > >
> > > > > or
> > > > > functionality penalty involved with this approach.
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Thorsten
> > > > >
> > > > > --
> > > > > Dr.-Ing. Thorsten Meinl
> > > > > KNIME AG
> > > > > Hardturmstrasse 66
> > > > > 8005 Zurich, Switzerland
> > >
> > > --
> > > Dr.-Ing. Thorsten Meinl
> > > KNIME AG
> > > Hardturmstrasse 66
> > > 8005 Zurich, Switzerland
>
>
> --
> Dr.-Ing. Thorsten Meinl
> KNIME AG
> Hardturmstrasse 66
> 8005 Zurich, Switzerland

Reply via email to