I should mention that I turned logging up to DEBUG, like Adrian said, and at
the point that the broker gets clobbered the topic memory is filled to 100%
and I get a lot of messages like the ones below:

2010-02-17 16:00:05,866 [DEBUG] org.apache.activemq.usage.Usage - Memory
usage change.  from: 100, to: 99
2010-02-17 16:00:05,866 [DEBUG] org.apache.activemq.usage.Usage - Memory
usage change.  from: 99, to: 100


Maarten_D wrote:
> 
> No problem:
> 
> <beans
>   xmlns="http://www.springframework.org/schema/beans";
>   xmlns:amq="http://activemq.apache.org/schema/core";
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>   xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>   http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core.xsd
> http://mortbay.com/schemas/jetty/1.0 
>   http://jetty.mortbay.org/jetty.xsd";>
> 
>   <!-- Allows us to use system properties as variables in this
> configuration file -->
>   <bean
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>     <property name="location" value="file:/var/amq/broker.properties" />
>   </bean>
>     
>   <!-- 
>  
> ******************************************************************************************************************
>   ** ActiveMQ broker
>  
> ******************************************************************************************************************
>  
>   -->
>   <broker id="broker" useJmx="true" brokerName="broker" start="true" 
>           xmlns="http://activemq.apache.org/schema/core"; 
>           dataDirectory="/var/amq" advisorySupport="false" 
>           persistenceAdapter="#store">
>     
>     <destinationPolicy>
>       <policyMap>
>         <policyEntries>
>           <policyEntry queue=">" memoryLimit="64 mb"
> producerFlowControl="false" /> 
>           <policyEntry topic=">" memoryLimit="64 mb"
> producerFlowControl="true" />
>         </policyEntries>
>       </policyMap>
>     </destinationPolicy>
>     
>     <managementContext>
>       <managementContext useMBeanServer="true"
>                          jmxDomainName="org.apache.activemq"
>                          createMBeanServer="true"
>                          createConnector="false"
>                          connectorPort="1100"
>                          connectorPath="/jmxrmi"/>
>     </managementContext>
>     
>     <persistenceAdapter id="store">
>       <kahaDB enableJournalDiskSyncs="false" 
>               journalMaxFileLength="32mb"
>               enableIndexWriteAsync="true"
>               directory="/var/amq/broker"
>               indexWriteBatchSize="1000" />
>     </persistenceAdapter>
>     
>     <systemUsage>
>       <systemUsage>
>         <memoryUsage>
>           <memoryUsage limit="512 mb" />
>         </memoryUsage>
>       </systemUsage>
>     </systemUsage>
> 
>     <transportConnectors>
>       <transportConnector name="cearchive" uri="tcp://0.0.0.0:61616" />
>     </transportConnectors>
>   </broker>
>    
>   <!-- Here we start an embedded webserver for the admin console -->
>   <jetty xmlns="http://mortbay.com/schemas/jetty/1.0";>
>     <connectors>
>       <nioConnector port="8161"/>
>     </connectors>
>     <handlers>
>       <webAppContext contextPath="/admin"
> resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true"/>
>     </handlers>
>   </jetty>
> </beans>
> 
> 
> 
> rajdavies wrote:
>> 
>> can you send your broker config ?
>> On 17 Feb 2010, at 12:38, Maarten_D wrote:
>> 
>>>
>>> The topics and queues are filled using a Spring JMSTemplate that has  
>>> it's own
>>> connection factory, and dequeuing is done by message listeners that  
>>> all have
>>> their own connection. So everything should have its own connection,  
>>> let
>>> alone session.
>>>
>>> I'll do another run on debug and see what it turns up.
>>>
>>>
>>> Adrian A wrote:
>>>>
>>>> you are running separate sessions for each of those dequeue/enqueue  
>>>> stats?
>>>>
>>>> in my flow control tests even when one particular session was hung  
>>>> other
>>>> sessions to the same broker was fine, just when I overwhelmed  
>>>> broker and
>>>> GC / disk checkpointing occurred that it got really bad.
>>>>
>>>> have you turned on debugging as that although verbose is a wealth of
>>>> information!
>>>>
>>>>
>>>>
>>>> Maarten_D wrote:
>>>>>
>>>>> Hi Adrian, thanks for your response.
>>>>>
>>>>> I'm currently running tests where I have a very fast producer and a
>>>>> relatively slow consumer. The producer publishes persistent  
>>>>> messages to a
>>>>> topic, where the enqueue and dequeue count diverge fairly rapidly  
>>>>> to a
>>>>> difference of around 80,000 messages. The producer then gets  
>>>>> whacked and
>>>>> the enqueue graph in visualvm completely levels off. This is more  
>>>>> or less
>>>>> expected, as I've turned on producerFlowControl for topics.  
>>>>> However, the
>>>>> entire broker stalls. I have several queues that are filled and  
>>>>> emptied
>>>>> at the same time as the topic, and their dequeue/enqueue stats  
>>>>> flatline
>>>>> as well, even though flow control shouldn't apply to them. Thats  
>>>>> why I
>>>>> was interested to find out if you'd discovered some kind of fresh  
>>>>> angle.
>>>>> Regards,
>>>>> Maarten
>>>>>
>>>>
>>>>
>>>
>>> -- 
>>> View this message in context:
>>> http://old.nabble.com/Slow-sending-of-messages-tp26849964p27623064.html
>>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>>
>> 
>> Rob Davies
>> http://twitter.com/rajdavies
>> I work here: http://fusesource.com
>> My Blog: http://rajdavies.blogspot.com/
>> I'm writing this: http://www.manning.com/snyder/
>> 
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Slow-sending-of-messages-tp26849964p27624994.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to