activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lurga <...@netease.com>
Subject Re: memoryUsage configuration
Date Wed, 12 Nov 2008 02:56:08 GMT

Hi Gary,
Think you for your reply,but I still have some doubt about the  'valid
anomaly' you mentioned . 
I was puzzled with this question for some days, and I also attempted to 
resolve it by writing some temperory code . 
What the most I want to know is  why the BaseDestination uses two memory
usage. 
I am looking forword your advice. thanks.


Gary Tully wrote:
> 
> Hi Lurga,
> this seems to be a valid anomaly.
> Please check out the contributing[1] details to see the best way to
> make your changes permanent.
> [1]  http://activemq.apache.org/contributing.html
> 
> 2008/11/11 lurga <aze@netease.com>:
>>
>> Queue invokes memoryUsage.isFull() method to decide when to block
>> producer
>> sending message, and FilePendingCursor invokes hasSpace() method (uses
>> systemUsage of the Queue) to decide when to flush messages to disk. I
>> made a
>> patch to avoid diverse results from these two different ways of
>> judgement.
>> Now it seems to work correct.
>>
>> Index:
>> activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
>> ===================================================================
>> ---
>> activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
>> (revision 712969)
>> +++
>> activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java
>> (working copy)
>> @@ -141,6 +141,12 @@
>>             memoryUsage.setParent(systemUsage.getMemoryUsage());
>>         }
>>
>> +        long memoryUsageHighWaterMark =
>> +            Math.min(memoryUsage.getLimit(),
>> systemUsage.getMemoryUsage().getLimit())
>> +            * messages.getMemoryUsageHighWaterMark()
>> +            / systemUsage.getMemoryUsage().getLimit();
>> +        messages.setMemoryUsageHighWaterMark((int)
>> memoryUsageHighWaterMark);
>> +
>>         if (isOptimizedDispatch()) {
>>             this.taskRunner = taskFactory.createTaskRunner(this,
>> "TempQueue:  " + destination.getPhysicalName());
>>         }else {
>> --
>> View this message in context:
>> http://www.nabble.com/memoryUsage-configuration-tp20416088p20435735.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/memoryUsage-configuration-tp20416088p20453099.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message