activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jake Choi ...@yahoo-inc.com>
Subject Re: cursor memory usage/limit vs memory usage/limit
Date Thu, 01 Aug 2013 22:56:50 GMT
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.

Mime
View raw message