Startup error of embedded ActiveMQ: Temporary Store limit is 51200 mb

匿名 (未验证) 提交于 2019-12-03 03:10:03

问题:

I have a Spring web application which will send and listen on a standalone ActiveMQ. When I start the web application, it shows:

20:12:52.684 [localhost-startStop-1] ERROR o.a.activemq.broker.BrokerService - Temporary Store limit is 51200 mb, whilst the temporary data directory: /root/activemq-data/localhost/tmp_storage only has 29021 mb of usable space 

I googled and read many articles, they all refer to configure broker and systemusage to limit the temp store size. However, I do not how to do this in Spring configuration. Below is my configuration XML.

<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">     <property name="brokerURL" value="${jms.broker_url}" /> </bean> <bean id="cachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">     <property name="targetConnectionFactory" ref="connectionFactory" />     <property name="sessionCacheSize" value="10" /> </bean>  <bean id="recvQueue" class="org.apache.activemq.command.ActiveMQQueue">     <constructor-arg value="q.recv" /> </bean> <bean id="sendQueue" class="org.apache.activemq.command.ActiveMQQueue">     <constructor-arg value="q.send" /> </bean> <bean id="notifyQueue" class="org.apache.activemq.command.ActiveMQQueue">     <constructor-arg value="q.notify" /> </bean>  <!-- Spring JMS Template --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">     <property name="connectionFactory" ref="cachingConnectionFactory" /> </bean> <bean id="batchImplMessageProducer" class="com.seebon.spfcore.repository.jms.BatchImplMessageProducer">     <property name="jmsTemplate" ref="jmsTemplate" />     <property name="sendQueue" ref="sendQueue" />     <property name="recvQueue" ref="recvQueue" />     <property name="notifyQueue" ref="sendQueue" />  </bean>  <bean id="advancedQueueContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">     <property name="connectionFactory" ref="connectionFactory" />     <property name="destination" ref="recvQueue" />     <property name="messageListener" ref="recvBatchImplMessageListener" />      <property name="concurrentConsumers" value="5" />     <property name="maxConcurrentConsumers" value="10" /> </bean>   <bean id="recvBatchImplMessageListener" class="com.seebon.spfcore.repository.jms.RecvBatchImpMessageListener" /> 

Please help me out of here, THANKS!

回答1:

In your activeMQ.xml you would have some configuration like this

<systemUsage>    <systemUsage>       ....       <tempUsage>          <tempUsage limit="50 gb"/>       </tempUsage>    </systemUsage> </systemUsage> 

you need to specify a value which is available on your disk,as error clearly mentions there is only 29021 MB of free space you need to set <tempUsage limit="50 gb"/> to a value lesser than your free space

you can do something like <tempUsage limit="20 gb"/>

Hope this helps!

Good luck!



回答2:

I had the same problem, but placing an activeMQ.xml somewhere on the server isn't the best idea in this case, I think.

When I use an embedded active mq server, I want to keep all configuration in one place (especially in my project/war file).

Now it is possible to set the tempUsage config values directly at broker-bean definition: as described in this link.

For example:

<amq:broker useJmx="false" persistent="false">     <amq:transportConnectors>         <amq:transportConnector uri="tcp://localhost:0"/>     </amq:transportConnectors>     <amq:systemUsage>         <amq:systemUsage>             <amq:memoryUsage>                 <amq:memoryUsage limit="64 mb"/>             </amq:memoryUsage>             <amq:storeUsage>                 <amq:storeUsage limit="512 mb"/>             </amq:storeUsage>             <amq:tempUsage>                 <amq:tempUsage limit="128 mb"/>             </amq:tempUsage>         </amq:systemUsage>     </amq:systemUsage> </amq:broker> 

(amq - namespace = http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd)



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!