The advisories are all listed here:
http://activemq.apache.org/advisory-message.html  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 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.


On Wed, Oct 12, 2016 at 10:54 AM, Martyn Taylor <mtay...@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.shan...@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 <jgo...@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.shan...@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.shan...@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.
> > > > >
> > > >
> > >
> >
>

Reply via email to