activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christian Posta <christian.po...@gmail.com>
Subject Re: Configuring common defaults for topics and queues.
Date Wed, 08 May 2013 02:39:45 GMT
Concur!

On Tuesday, May 7, 2013, Paul Gale wrote:

> Hi Christian,
>
> So after looking through ActiveMQ's code it would appear that my
> understanding of what constitutes a 'default entry*'* is not what I had
> previously thought. As stated previously I thought that a 'default entry'
> was used to define default configuration values that would be subsequently
> *
> inherited* by specific topic and queue policy entries. The idea being that
> these policy entries could optionally override these configuration values.
> In other words I was interpreting 'default' to mean 'base'. This I now
> know, is wrong.
>
> It turns out that the default entry is not used for inheriting
> configuration at all. Rather it is used (if defined) to configure either a
> topic or queue destination when there is no corresponding destination
> policy. Searching for a corresponding destination policy involves wildcard
> matching the list of policy entries. Given that I have wildcard policy
> entries for both topics and queues with the widest possible scope ('>') the
> defaultEntry will NEVER be used, as the wildcard always results in a match.
>
> Below is the only place that the defaultEntry is retrieved (in
> PolicyMap.java):
>
>     public PolicyEntry getEntryFor(ActiveMQDestination destination) {
>         PolicyEntry answer = (PolicyEntry) chooseValue(destination);
>         if (answer == null) {
>             answer = getDefaultEntry();
>         }
>         return answer;
>     }
>
> Do you concur with my findings?
>
> Thanks,
> Paul
>
>
> On Tue, May 7, 2013 at 11:42 AM, Christian Posta
> <christian.posta@gmail.com <javascript:;>>wrote:
>
> > Paul,
> >
> > Looks like you have a policy for all queues and all topics too... So the
> > default policy won't get used for those destinations. I think you also
> have
> > to specify a "topic" or "queue" for default entry, even though it gets
> > ignored.
> >
> >
> > On Tue, May 7, 2013 at 8:09 AM, Paul Gale <paul.n.gale@gmail.com<javascript:;>>
> wrote:
> >
> > > Hi,
> > >
> > > In an attempt to DRY up my ActiveMQ configuration I realized that,
> > > according to the activemq-core schema, it's possible to configure
> common
> > > defaults for both topics and queues as shown in the snippet below. I
> have
> > > this defined in my activemq.xml currently.
> > >
> > > Whilst ActiveMQ does not fail the schema validation on startup I still
> > > don't know whether ActiveMQ has honored these settings or has ignored
> > them.
> > > I have not come across any references to this method of configuring
> > common
> > > defaults, nor do I have a way to verify that said configuration has
> taken
> > > effect the way I think it has, short of relying on any explicit logging
> > > statements. Would exploring ActiveMQ's MBeans via JMX be the best
> method
> > > for verification?
> > >
> > > Can one of the committers comment on the legality of this syntax?
> > >
> > > Thanks,
> > > Paul
> > >
> > >
> >
> ____________________________________________________________________________________________________
> > >
> > >     <destinationPolicy>
> > >       <policyMap>
> > >         <defaultEntry>
> > >           <policyEntry producerFlowControl="false"
> > >                        advisoryWhenFull="true"
> > >                        advisoryForFastProducers="true"
> > >                        advisoryForSlowConsumers="true"
> > >                        advisoryForDiscardingMessages="true"
> > >                        optimizedDispatch="true">
> > >             <deadLetterStrategy>
> > >               <individualDeadLetterStrategy queuePrefix="DLQ."
> > >                                             topicPrefix="DLQ."
> > >                                             processExpired="false"
> > >
> > useQueueForQueueMessages="true"
> > >
> > useQueueForTopicMessages="true"
> > >
> > > destinationPerDurableSubscriber="false"/>
> > >             </deadLetterStrategy>
> > >             <dispatchPolicy>
> > >               <roundRobinDispatchPolicy/>
> > >             </dispatchPolicy>
> > >           </policyEntry>
> > >         </defaultEntry>
> > >         <policyEntries>
> > >           <policyEntry topic=">">
> > >             <dispatchPolicy>
> > >               <strictOrderDispatchPolicy/>
> > >             </dispatchPolicy>
> > >           </policyEntry>
> > >           <policyEntry queue=">" />
> > >         </policyEntries>
> > >       </policyMap>
> > >     </destinationPolicy>
> > >
> >
> >
> >
> > --
> > *Christian Posta*
> > http://www.christianposta.com/blog
> > twitter: @christianposta
> >
>


-- 
*Christian Posta*
http://www.christianposta.com/blog
twitter: @christianposta

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