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: cursor memory usage/limit vs memory usage/limit
Date Thu, 01 Aug 2013 23:18:29 GMT
Just tried that on my side and didn't make a difference.
BTW, i've committed the test to a private branch here:

https://github.com/christian-posta/activemq-durable-sub-pfc-tests/tree/jake-choi-tests


On Thu, Aug 1, 2013 at 3:56 PM, Jake Choi <jw@yahoo-inc.com> wrote:

> I just got a pretty interesting observation: I just tried my own tweaked
> PendingDurableSubscriberPolicy (as I learned from the other thread, see
> below) to the test code I've been using:
>
>
> http://activemq.2283324.n4.nabble.com/How-to-configure-this-combination-of-queue-cursors-tt4670003.html#a4670027
>
> Then, the test code went through:  MemoryLimitTest.java
> <http://activemq.2283324.n4.nabble.com/file/n4670029/MemoryLimitTest.java>
>
> -----
>
> Let's explain what's happened again in the test code above, shortly.  With
> only durable subscriber with prefetchSize=0, persistent message publishing
> to the topic is blocked (PFC) by hitting per-destination memory limit
> (1MB).
> But, when I changed the PendingDurableSubscriberPolicy from the default
> "StorePendingDurableSubscriberMessageStoragePolicy" to the customized one
> (see below), persistent message publishing didn't get stuck by any PFC but
> went through very well.
>
>
>         // This makes the test flow through!
>         // Without this (with default
> StorePendingDurableSubscriberMessageStoragePolicy),
>         // persistent message publishing to the topic got stuck. Why??
>         policyEntry.setPendingDurableSubscriberPolicy(new
> StorePendingDurableSubscriberMessageStoragePolicy() {
>             @Override
>             public PendingMessageCursor
> getSubscriberPendingMessageCursor(Broker broker, String clientId, String
> name,
>                     int maxBatchSize, DurableTopicSubscription sub) {
>                 broker.getBrokerService().setPersistent(false);
>                 StoreDurableSubscriberCursor cursor =
> (StoreDurableSubscriberCursor) super
>                         .getSubscriberPendingMessageCursor(broker,
> clientId,
> name, maxBatchSize, sub);
>                 broker.getBrokerService().setPersistent(true);
>                 return cursor;
>             }
>         });
>
>
> I'm curious what difference is there between these two
> "PendingDurableSubscriberPolicy"s particularly for the persistent pending
> cursor used inside..  Strange..
>
>
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/cursor-memory-usage-limit-vs-memory-usage-limit-tp4669679p4670029.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>



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

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