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.