2014-12-18 8 views
5

मेरे पास एक स्प्रिंग वेब एप्लिकेशन है जो एक स्टैंडअलोन ActiveMQ को भेज और सुन देगा। जब मैं वेब अनुप्रयोग शुरू करते हैं, यह पता चलता है:एम्बेडेड ActiveMQ की स्टार्टअप त्रुटि: अस्थायी स्टोर सीमा 51200 एमबी

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 

मैं googled और कई लेख पढ़ते हैं, वे सभी अस्थायी दुकान आकार को सीमित करने दलाल और systemusage कॉन्फ़िगर करने के लिए संदर्भ लें। हालांकि, मैं वसंत विन्यास में ऐसा करने के लिए नहीं करता हूं। नीचे मेरा विन्यास एक्सएमएल है।

<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" /> 

कृपया मुझे यहाँ से बाहर मदद, धन्यवाद!

उत्तर

7

अपने में activeMQ.xml आप, इस

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

आप एक मूल्य है जो आपकी डिस्क पर उपलब्ध है निर्दिष्ट करने की आवश्यकता जैसे कुछ विन्यास के लिए होता है के रूप में त्रुटि स्पष्ट रूप से उल्लेख है मुक्त अंतरिक्ष के केवल 29021 एमबी आप स्थापित करने की आवश्यकता होती है अपने खाली स्थान की तुलना में कम एक मूल्य के <tempUsage limit="50 gb"/>

आप आशा कुछ <tempUsage limit="20 gb"/> तरह

इस मदद करता है कर सकते हैं!

शुभकामनाएं!

+1

मदद के लिए धन्यवाद। लेकिन मेरे पास मेरे वेब ऐप में यह कॉन्फ़िगरेशन फ़ाइल नहीं है, क्या मुझे एक बनाना चाहिए? ActiveMQ स्वचालित रूप से इसे पढ़ेगा? – BurnetZhong

+0

फ़ाइल मौजूद होगी जहां आपका सक्रिय एमक्यू उदाहरण चल रहा है यानी वह स्थान जहां आप अपने ब्रोकर से कनेक्ट कर रहे हैं i। ई अगर आप हमें यूआरएल दिखाते हैं तो हम आपके {broker_url} को – Vihar

+0

पर इंगित कर सकते हैं। मेरा ActiveMQ एक ही मशीन में होस्ट किया गया है, इसलिए यह स्थानीयहोस्ट है। – BurnetZhong

4

मुझे एक ही समस्या थी, लेकिन सर्वर पर कहीं भी एक सक्रिय MQ.xml रखना इस मामले में सबसे अच्छा विचार नहीं है, मुझे लगता है।

जब मैं एक एम्बेडेड सक्रिय एमक सर्वर का उपयोग करता हूं, तो मैं सभी कॉन्फ़िगरेशन को एक ही स्थान पर रखना चाहता हूं (विशेष रूप से मेरी परियोजना/युद्ध फ़ाइल में)।

अब ब्रोकर-बीन परिभाषा पर tempUsage कॉन्फ़िगरेशन मान सेट करना संभव है: जैसा कि link में वर्णित है।

उदाहरण के लिए:

<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 - नाम स्थान = http://activemq.apache.org/schema/corehttp://activemq.apache.org/schema/core/activemq-core.xsd)

संबंधित मुद्दे