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