Ubuntu activemq中的内存限制(67108864)

Ubuntu activemq中的内存限制(67108864),ubuntu,activemq,configure,Ubuntu,Activemq,Configure,当涉及到ActiveMQ时,我遇到了一个问题。我需要知道在何处可以重新配置活动MQ以避免以下错误: Usage Manager Memory Limit (67108864) reached on queue://1000010. Producers will be throttled to the rate at which messages are removed from this destination to prevent flooding it. 请注意,我正在Ubuntu 11

当涉及到ActiveMQ时,我遇到了一个问题。我需要知道在何处可以重新配置活动MQ以避免以下错误:

Usage Manager Memory Limit (67108864) reached on queue://1000010. Producers will be throttled to the rate at which messages are removed from this destination to prevent flooding it. 
请注意,我正在Ubuntu 11.10上使用ActiveMQ 5.5版

她是我的朋友:

<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">
        <property name="locations">
            <value>file:${activemq.base}/conf/credentials.properties</value>
        </property>      
    </bean>

    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" useJmx="true" dataDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true"  schedulePeriodForDestinationPurge="0">

        <destinationPolicy>
            <policyMap>
              <policyEntries>
                <policyEntry topic=">" producerFlowControl="false">
                  <pendingSubscriberPolicy>
                    <vmCursor />
                  </pendingSubscriberPolicy>
                </policyEntry>
                <policyEntry queue=">" producerFlowControl="false" maxPageSize="500" queuePrefetch="300" expireMessagesPeriod="0" queuePrefetch="1">

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

        <managementContext>
            <managementContext createConnector="false"/>
        </managementContext>

        <persistenceAdapter persistent="true" useShutdownHook="false">
            <kahaDB directory="${activemq.base}/data/kahadb" journalMaxFileLength="32mb"/>
        </persistenceAdapter>

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

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

    </broker>

    <import resource="jetty.xml"/>

</beans>

文件:${activemq.base}/conf/credentials.properties

您看到的与向队列中发送非持久性消息一致。这看起来您达到了默认内存限制。如果您向队列发送持久消息,它们将使用KahaDB,因此
storeUsage
限制为
100gb


另外,对于所有队列,您在
policyEntry
上设置了两个
queuePrefetch
值-这可能不是您想要的。

您是否可以尝试定义一个不同的
memoryLimit=“XYZmb”
作为队列policyEntry的一部分。