Hello,

I am trying to setup activemq 5.4.2 and I experience hangs when the broker
fills its heap and starts using storage. In my scenario I have one full
speed message producer and one message consumer connected. The producer is
blocked and the consumer does not receive any messages. I have been able to
run the broker under debug mode and identify what the relevant threads are
doing:

The task for iteration of the queue waits for the messagesLock on the line
1404 in
http://svn.apache.org/viewvc/activemq/tags/activemq-5.4.2/activemq-core/src/main/java/org/apache/activemq/broker/region/Queue.java?view=markup.

The thread that stores messages into the queue waits on the line 219 of
http://svn.apache.org/viewvc/activemq/tags/activemq-5.4.2/activemq-core/src/main/java/org/apache/activemq/broker/region/cursors/FilePendingMessageCursor.java?view=markup
for free space. Note that the thread has the messagesLock locked and the
temporaly usage is always 103%, and therefore, it never returns.

Is it possible that I encountered something like a deadlock? By the way, the
issue AMQ-4136 seems to be related. 

I will be thankful for advice.
Tomas

Here is the configuration of the broker:

<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";>

    
    <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
/>

    
    <broker xmlns="http://activemq.apache.org/schema/core";
brokerName="localhost"
        dataDirectory="/dasd/martinec/kahadb-storage/activemq-data"
        destroyApplicationContextOnStop="true"
        deleteAllMessagesOnStartup="true"
        advisorySupport="false"
        enableStatistics="false"
        schedulerSupport="false"
        useJmx="true"
        persistent="true">

        <destinationPolicy>
            <policyMap>
              <policyEntries>
                
                <policyEntry topic=">" producerFlowControl="false"
enableAudit="false" expireMessagesPeriod="0"></policyEntry>
                <policyEntry queue=">" producerFlowControl="true"
memoryLimit="50mb" enableAudit="false" expireMessagesPeriod="0">

                </policyEntry>
              </policyEntries>
            </policyMap>
        </destinationPolicy>

        
        <managementContext>
            <managementContext createConnector="true" connectorPort="1399"
rmiServerPort="1399"/>
        </managementContext>

        <persistenceAdapter>
        <kahaPersistenceAdapter directory="/dasd/martinec/kahadb-storage"/>
        </persistenceAdapter>

    <systemUsage>
        <systemUsage>
        <memoryUsage>
                
            <memoryUsage limit="200 mb"/>
        </memoryUsage>
        <storeUsage>
                
            <storeUsage limit="1 gb"/>
        </storeUsage>
        <tempUsage>
                
            <tempUsage limit="100 mb"/>
        </tempUsage>
        </systemUsage>
    </systemUsage>

        
        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
        </transportConnectors>
    </broker>

    <import resource="jetty.xml"/>

</beans> 



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Activemq-5-4-2-hangs-when-the-temp-disk-usage-is-used-tp4660202.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to