I know this has been discussed over and over again, I browsed through
existing postings, but it's still not clear and it looks like it's not clear
for a bunch of people. So I’ll ask through examples, hopefully we can all be
clear, once for all. :)

I have disabled persistence with:
<broker persistent="false"…>
and commented out any persistence configuration in the 
activemq.xml file.

I have also this configuration in my activemq.xml:
…
        <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage limit="20 mb"/>
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="1 gb" name="foo"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="100 mb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>
…
<destinationPolicy>
  <policyMap>
    <policyEntries>
      ....
      <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb" />
      ...
    </policyEntries>
  </policyMap>
</destinationPolicy>
…

1. Is the spill over of memory (20MB) into the disk (100 MB) still enabled,
if the persistence is turned off?

2. My understanding is that each queue cannot have more than 1 mb. Is that
in memory only or memory plus disk?
So say I have only one queue only and it reached 1 mb. What happens when
next message is received? 
a) Will the producer block (flow control is true as you can see)? If that’s
the case, then the tempusage limit value of 100MB has no effect in this case
(1 queue only) correct?
b) Will it page the queue to the disk? Because I understand that paging to
the disk will happen when 70% of the 20MB will be in use, which is not the
case. If it does page the queue to the disk this means that my single queue
can grow up to 101MB (1 MB which is max in memory + 100 MB on the disk)?

3. Say I have 30 queues now. Individually they can take 1mb of ram each, but
collectively 20MB. If each of them is under 1MB, but collectively they reach
14 MB (70% of  20MB), the next queue that tips over the 70% will be paged to
the disk. Now say this queue was using just 100k and the new message is 10k.
Paging means the whole 110k will be paged to the disk? That’s in spite the
fact that there are queues holding much more, up to 1MB worth of data?

If I get these questions answered, I am clear. Thanks.


-- 
View this message in context: 
http://old.nabble.com/Disabling-persistence-and-paging-messages-%28virtual-memory%29-tp28244472p28244472.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to