activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martyn Taylor <mtay...@redhat.com>
Subject Re: [DISCUSS] Artemis missing advisories and producer tracking
Date Wed, 12 Oct 2016 15:46:59 GMT
On Wed, Oct 12, 2016 at 4:17 PM, Christopher Shannon <
christopher.l.shannon@gmail.com> wrote:

> The advisories are all listed here:
> http://activemq.apache.org/advisory-message.html

Thanks.  One difficulty here would be adding all the "topic" advisories,
since we don't really have the concept of a "topic" in Artemis Core.  I am
hoping to change this with:
https://issues.apache.org/jira/browse/ARTEMIS-780.  Which would expose
pub/sub at the Artemis Core level.  This should facilitate any equivalent
pub/sub (topic) advisories listed here.

> The only ones currently
> that I saw that were being sent from the OpenWireProtocolManager were for
> created/destroyed destinations and new connections.
>
> Obviously not all the advisories are currently possible to add but
> eventually would be nice to support them. In 5.x there's a plugin to handle
> the advisories but in Artemis maybe we could piggy back on the
> NotificationListener interface that is used for notifications to handle
> publishing advisory messages.  There's also the notion of replaying
> advisories for new connections which may not currently exist.  Ie when a
> new subscriber comes online to the consumer advisory topic we should replay
> all the consumers messages.


> For MQTT and STOMP, I agree that it may not necessarily make sense to track
> the producers since they don't exist in the protocol (or maybe we send it
> lazy on the first message send)  But for the CORE protocol I would think it

would be pretty straightforward to add a new packet type that a client
> could send and it could be tracked. I can work on a PR for it if everyone
> agrees it makes sense to track it.

I don't think I am quite sold on the lazy producer notifications idea :P.
But we can get into the details on the JIRA / PR.

>
> I don't currently have a JIRA created as I wanted to get a discussion going
> first.  Not sure if it makes sense to create individual JIRAs or create one
> JIRA for advisory support with sub tasks.

I tend to go with a single JIRA with subtasks for things like this.

>


>
> On Wed, Oct 12, 2016 at 10:54 AM, Martyn Taylor <mtaylor@redhat.com>
> wrote:
>
> > Christopher do you have a list of missing notifications, is it mainly the
> > producer notifications?
> >
> > I'm all for adding these where they make sense, but there maybe places
> > where the notifications don't quite make sense to do at the Artemis Core
> > level.  I suspect then, that we'll need to do some notifications on a per
> > protocol basis.  In the producer case, protocols handlers layer the
> > functionality on top of the CORE model, the concept of a broker side
> > producer is not something we have in Artemis Core.  OpenWire has a
> > ProducerInfo packet and AMQP a "Sender LinkAttach", in these cases the
> > "producer" state is kept in the protocol module itself, MQTT, STOMP and
> > CORE don't have such things and I'm not sure a notification makes sense
> to
> > send notifications for these.
> >
> > We probably need to address these one by one.  Do you have a JIRA where
> we
> > can track this?
> >
> > On Wed, Oct 12, 2016 at 3:31 PM, Christopher Shannon <
> > christopher.l.shannon@gmail.com> wrote:
> >
> > > I would say that for JMS (and certainly OpenWire) a producer should be
> > > considered created when making that create producer call on a JMS
> client.
> > > At least with OpenWire that ProducerInfo object is sent immediately on
> > > creation and is tracked.
> > >
> > > However for other protocols that isn't the case and lazy notification
> > might
> > > make more sense but it would be different behavior than 5.x which may
> or
> > > may not be ok.  So really we need to decide what our strategy is and
> > > whether or not we try to make advisory processing uniform across all
> > > protocols like 5.x or if we leave something like when a producer
> advisory
> > > is sent up to each individual protocol.
> > >
> > >
> > > On Wed, Oct 12, 2016 at 10:17 AM, Jim Gomes <jgomes@apache.org> wrote:
> > >
> > > > +1 for supporting all the advisories that the current ActiveMQ 5.x
> > > > supports.
> > > >
> > > > As for when the advisory message is sent for a Producer, I'm not sure
> > > there
> > > > is a specific guarantee about that. If a Producer is 'created', but a
> > > > message is never sent, was it actually created? I'm not necessarily
> > > opposed
> > > > to the lazy notification strategy.
> > > >
> > > >
> > > > On Wed, Oct 12, 2016, 6:48 AM Christopher Shannon <
> > > > christopher.l.shannon@gmail.com> wrote:
> > > >
> > > > > Also as a follow up, I noticed that the OpenWireProtocalManager
> > already
> > > > > fires a couple advisories for new connections/destinations.  I can
> > > > > certainly create a PR to add more advisories but I guess really the
> > > > > question is whether or not we should support the advisories across
> > any
> > > > > protocol or not.
> > > > >
> > > > > On Wed, Oct 12, 2016 at 8:32 AM, Christopher Shannon <
> > > > > christopher.l.shannon@gmail.com> wrote:
> > > > >
> > > > > > In general it would be nice if all of the current advisories
that
> > are
> > > > > > supported in 5.x could eventually be supported in Artemis as
> well.
> > > >  As I
> > > > > > was looking at Artemis's notifications to see what currently
> > existed
> > > > one
> > > > > > thing I noticed was that there is a lack of producer
> notifications.
> > > > > Having
> > > > > > an advisory sent when a producer is created is something that
I
> > know
> > > I
> > > > > use
> > > > > > all the time.
> > > > > >
> > > > > > I dug into this and it looks like the reason is because Artemis
> > > doesn't
> > > > > > actually track a producer until the first message is sent. 
In
> fact
> > > > > there's
> > > > > > no notion of a producer on the core wire format at all (there's
> no
> > > > packet
> > > > > > type for it).
> > > > > >
> > > > > > I realize that many protocols don't have the notion of a
> > > producer...In
> > > > > 5.x
> > > > > > this is handled by just creating ProducerInfo objects on first
> > > > connection
> > > > > > when a protocol doesn't support it (ie Stomp, etc). However,
the
> > JMS
> > > > API
> > > > > > does have a specific call to create a producer so I find it
> useful
> > to
> > > > get
> > > > > > an advisory message and to track when producers come online
even
> if
> > > not
> > > > > > every protocol supports this.
> > > > > >
> > > > > > So I guess I wanted to see what people thought about adding
a
> > > > > notification
> > > > > > for producers and also trying to fill in the gaps for the rest
of
> > the
> > > > > > advisory topics that are missing.
> > > > > >
> > > > >
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message