activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Denis Bazhenov <bazhe...@farpost.com>
Subject Re: [BEGINNER] Question about configuration
Date Wed, 11 Aug 2010 10:45:39 GMT
Actually you can use JMS API to set message persistence mode. See http://download-llnw.oracle.com/javaee/1.4/api/javax/jms/Message.html#setJMSDeliveryMode(int)

--
Denis Bazhenov
FarPost.




On Aug 10, 2010, at 1:45 AM, iDemmel wrote:

> 
> Hello Reynald
> 
> thank you for the quick and accurate reply, it definitely did help me.
> I did some more 'research' and found out that the Java JMS API provides a
> method to indicate whether a method should be treated as persistent or not:
> http://activemq.apache.org/what-is-the-difference-between-persistent-and-non-persistent-delivery.html
> 
> Thanks again
> 
> Andrew
> 
> 
> Reynald Borer wrote:
>> 
>>  Hello Andrew,
>> 
>> Unfortunately, you cannot by server side configuration decide whether 
>> messages are kept in memory or written on disk. This is done by the 
>> producer, who decides if messages are persistent (this is the default) 
>> or not.
>> 
>> Persistent messages are always written to disk in order to ensure that 
>> if a failure on the broker happens, no messages are lost. On the 
>> contrary, non-persistent messages are kept in memory until the memory 
>> limit is reached. When memory limit is reached, messages are paged to 
>> disk until tempUsage is reached (after what producers are blocked until 
>> the limit goes down).
>> 
>> According to the wiki page on 
>> http://activemq.apache.org/producer-flow-control.html , there seems to 
>> be a way to ensure messages are always kept in memory (I have not tested 
>> it though). Here is what the documentation says:
>> 
>> -----------------
>> 
>> Note that, since the introduction of the new file cursor in ActiveMQ 
>> 5.x, non-persisted messages are shunted into the temporary file store to 
>> reduce the amount of memory used for non-persistent messaging. As a 
>> result, you may find that a queue's memoryLimit is never reached, as the 
>> cursor doesn't use very much memory. If you really do want to keep all 
>> your non-persistent messages in memory, and stop producers when the 
>> limit is reached, you should configure the <vmQueueCursor>.
>> 
>>                 <policyEntry queue=">"  producerFlowControl="true" 
>> memoryLimit="1mb">
>>                   <pendingQueuePolicy>
>>                     <vmQueueCursor/>
>>                   </pendingQueuePolicy>
>>                 </policyEntry>
>> 
>> The fragment above will ensure that all non-persistent queue messages 
>> are kept in memory, with each queue having a limit of 1Mb.
>> 
>> --------------------
>> 
>> Hope it help.
>> 
>> Cheers,
>> Reynald
>> 
>> 
>> On 08/09/2010 02:35 PM, iDemmel wrote:
>>> Hello
>>> 
>>> I need the broker to hold me 50,000 messages in a queue before starting
>>> to
>>> write to my HDD.
>>> Being new to ActiveMQ, I tried changing the config a bit. I tried to
>>> change
>>> the following config(I couldn't find something for amount of messages, so
>>> I
>>> just took memory), with no success:
>>> 1)<policyEntry queue=">" producerFlowControl="true" memoryLimit="128mb">
>>> 2)<systemUsage>
>>>             <systemUsage>
>>>                 <memoryUsage><memoryUsage limit="256 mb"/></memoryUsage>
>>>                 <storeUsage><storeUsage limit="1 gb"
>>> name="foo"/></storeUsage>
>>>                 <tempUsage><tempUsage limit="100 mb"/></tempUsage>
>>>             </systemUsage>
>>>      </systemUsage>
>>> 
>>> Whatever I do with these values, once I start producing (a lot), my HDD
>>> goes
>>> crazy, even from the start.
>>> I'm just a beginner, and I'm probably missing something basic but please
>>> help me out.
>>> 
>>> To summarize my questions:
>>> 1) How do I keep the queue in RAM only until it reaches 50k entries ?
>>> 2) Is it possible to configure the above with an amount of messages
>>> instead
>>> of memory?
>>> 
>>> Thank you for your time
>>> 
>>> Andrew
>> 
>> 
> 
> -- 
> View this message in context: http://old.nabble.com/-BEGINNER--Question-about-configuration-tp29387413p29388696.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
> 


Mime
View raw message