Bur*_*ong 8 java spring activemq-classic
我有一个Spring Web应用程序,它将发送和监听独立的ActiveMQ.当我启动Web应用程序时,它显示:
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
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索并阅读了很多文章,他们都参考配置代理和systemusage来限制临时存储大小.但是,我不知道如何在Spring配置中执行此操作.下面是我的配置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" />
Run Code Online (Sandbox Code Playgroud)
谢谢,请帮助我离开这里!
Vih*_*har 12
在你activeMQ.xml,你会有这样的一些配置
<systemUsage>
<systemUsage>
....
<tempUsage>
<tempUsage limit="50 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
Run Code Online (Sandbox Code Playgroud)
您需要指定磁盘上可用的值,因为错误明确提到只需要29021 MB的可用空间,您需要将其设置 <tempUsage limit="50 gb"/>为小于可用空间的值
你可以做点什么 <tempUsage limit="20 gb"/>
希望这可以帮助!
祝好运!
小智 5
我有同样的问题,但我认为在这种情况下在服务器上放置一个activeMQ.xml不是最好的主意.
当我使用嵌入式活动mq服务器时,我想将所有配置保存在一个地方(特别是在我的项目/ war文件中).
现在可以直接在broker-bean定义中设置tempUsage配置值:如此链接中所述.
例如:
<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>
Run Code Online (Sandbox Code Playgroud)
(amq - namespace = http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd)
| 归档时间: |
|
| 查看次数: |
11393 次 |
| 最近记录: |