Embedded ActiveMQ startup error: temporary storage limit - 51200 mb

I have a Spring web application that will send and listen to stand-alone ActiveMQ. When I launch the web application, it shows:

20:12:52.684 [localhost-startStop-1] ERROR oaactivemq.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 a lot of articles, all of which relate to setting up a broker and systemusage to limit the size of the temp store. However, I cannot do this in the Spring configuration. Below is my XML configuration.

 <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!

+5
source share
2 answers

In your activeMQ.xml you will have a configuration like this

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

you need to specify a value that is available on your disk, since the error clearly indicates that you only need 29021 MB of free space to set <tempUsage limit="50 gb"/> to a value less than your free space

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

Hope this helps!

Good luck

+7
source

I had the same problem, but placing activeMQ.xml somewhere on the server is not a good idea in this case, I think.

When I use the built-in active mq server, I want to save the configuration in one place (especially in the project / war file).

Now you can set the tempUsage configuration values ​​directly in the broker-bean: definition as described in this link .

For instance:

 <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 )

+4
source

Source: https://habr.com/ru/post/1209449/


All Articles