Hi Filip I am using topics & no queues. Is there a way to drop messages for particular consumers / for particular temporary topics based on certain conditions?
For example, if the message type is of type A or B, don't discard. If message is of type C, discard. Can BrokerFilter be used for discarding mesages based on conditions for slow consumers? Can policy entry be configured in following way? <policyEntry topic="ActiveMQ.Advisory.Consumer.Topic.PRICES.XYZ" producerFlowControl="false" memoryLimit="5mb"> <destination><topic name="ID:dcmpdevapp02"/></destination> <subscriptionRecoveryPolicy> <queryBasedSubscriptionRecoveryPolicy query="MType = 'A' OR MType = 'B'" /> </subscriptionRecoveryPolicy> <pendingMessageLimitStrategy> <prefetchRatePendingMessageLimitStrategy multiplier="2"/> </pendingMessageLimitStrategy> </policyEntry> Will configuring the xml be a good substitute than a plugin filter? Or broker filter will do the same operation effortlessly & it is more flexible than xml configuration? Thanks. Filip Hanik - Dev Lists wrote: > > that's absolutely doable, what you'd need to do is set > > producerFlowControl="false" on your policy entries, > that's what we did. > > then we setup the pendingMessageLimitStrategy to 1000, and our problem > was that when a message was discarded it went to the DLQ and eventually > caused OOME. > > The BrokerFilter class (Broker interface) can let you do many different > things > > let me know if you wish to elaborate some more > > Filip > > Badri wrote: >> Thanks Filip for taking time & replying. >> >> My use case is I have 5 components in my application which are consumers >> to >> active mq & receive data through temporary topics. If 1 of the consumer >> becomes slow, it blocks the publisher. I was thinking of configuring in >> activemq.xml based on topic / destinations. I was planning to use >> "pendingMessageLimitStrategy - prefetchRatePendingMessageLimitStrategy >> & >> also eviction strategies". By doing this I am hoping that other fast >> consumers receive data. Do you think plugin filters could also make a >> difference since this is a data sensitive application? >> >> Thanks >> Badri >> >> >> >> Filip Hanik - Dev Lists wrote: >> >>> Sure Badri, >>> our use case that we were dropping messages on the broker, so they go to >>> the Dead Letter Queue (DLQ), >>> however, for temporary topics, we didn't want that to happen, and since >>> I wasn't able to configure a policy for temp topics where we could plug >>> in a discarding DLQ, then we just did it as a plugin. >>> >>> The configuration looks like >>> >>> <plugins> >>> <bean >>> xmlns="http://www.springframework.org/schema/beans" >>> id="covalentDlqBroker" >>> class="com.covalent.activemq.discard.CovalentDLQBrokerPlugin"> >>> <property name="dropAll" value="false"/> >>> <property name="dropTemporaryTopics" value="true"/> >>> <property name="dropTemporaryQueues" value="true"/> >>> <!--drops by destination name, using java regular expressions >>> >>> http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html >>> delimited by spaces, so destination names cannot contain >>> spaces >>> --> >>> <property name="dropOnly" value="some_alarm another_alarm"/> >>> <!--how frequently do we output how many messages we have >>> dropped - use 0 for disable--> >>> <property name="reportInterval" value="1000"/> >>> </bean> >>> </plugins> >>> >>> The library and source code can be found here >>> http://people.apache.org/~fhanik/covalent-dlq.jar >>> >>> the nice thing with a broker plugin, is that you actually can control a >>> lot more than just DLQ :) >>> >>> hope this helps >>> Filip >>> >>> Badri wrote: >>> >>>> Hi Filip >>>> >>>> Can you give more details about the broker plugin filter? >>>> I also need to create policy entry for temporary topics. >>>> >>>> Thanks for your help & time. >>>> Badri >>>> >>>> >>>> Filip Hanik - Dev Lists wrote: >>>> >>>> >>>>> I couldn't get that to work properly, I even tried topic="ID>" since >>>>> that was the prefix, and didn't work either. >>>>> I worked around the problem by creating a broker plugin filter, and >>>>> doing my operations in there >>>>> >>>>> Filip >>>>> >>>>> Hiram Chirino wrote: >>>>> >>>>> >>>>>> I guess you want an entry for all topics or all queues right (since >>>>>> the actually names are dynamic)? >>>>>> >>>>>> One way to do it might be to use topic='>' since that would match all >>>>>> topics (temp topics are still topics). But I guess we should have >>>>>> something a little bette than that. >>>>>> >>>>>> On Fri, May 9, 2008 at 7:45 PM, Filip Hanik - Dev Lists >>>>>> <[EMAIL PROTECTED]> wrote: >>>>>> >>>>>> >>>>>> >>>>>>> is there a way to create a >>>>>>> <policyEntry> for temporary topics? >>>>>>> >>>>>>> Filip >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > > -- View this message in context: http://www.nabble.com/create-policyentry-for-temp-topics-tp17158262p17943349.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.