I think you may be experiencing https://issues.apache.org/activemq/browse/AMQ-2064 - a 5.3-SNAPSHOT could help
2009/7/2 Champax <[email protected]> > > Hello, > > after several days of testing, i am facing the following issue : I am > unable > to limit the physical space of temp storage used by AMQ, and temp_store is > growing ever and ever... > > =========================== > = Scenario : > =========================== > - One JVM, handling several producers, spamming the broker. > - One JVM, embedding the broker, with several consumers. > - All message are as DeliveryMode.NON_PERSISTENT > > =========================== > = Configuration (resumed) > =========================== > - AMQ.maxFileLength=67108864 > - <memoryUsage limit="128mb"/> > - <storeUsage limit="88mb" store="#store" /> > - <tempUsage limit="160mb"/> > - <policyEntry queue=">" producerFlowControl="false" memoryLimit="64mb"/> > > This should means, based on my understanding : > - The temp store is limited to 88mb > - Each temp file is 64 mb, so i should have 1 (or 2) temp files maximum > > 1) ISSUE1 : After flooding the broker, i have massive files into temp > directory, enforcing activemq configuration... > I have followed several post recommandations, including > " > http://open-source-adventures.blogspot.com/2009/01/limiting-disk-store-usage-with-active.html > ", > without any success. > > 2) ISSUE2 : The maxFileLegth has no effect, since i have massive flood of > 32 > MB "data-TopicSubscription-XXX" files inside "tmp_storage" folder. > > Someone may have a solution here (i hope...). Thanks by advance! > Regards. > > =========================== > = JMX on start > =========================== > - Broker.Memory = 134217728 > - Broker.StoreLimit = 92274688 > - Broker.TempLimit = 167772160 > - Queue.MemoryLimit = 67108864 > > =========================== > = JMX while running > =========================== > - Broker.MemoryPercentUsage = 320 (???) > - Broker.StorePercentUsage = 0 (logic, i am not using persistent senders) > - Broker.TempPercentUsage = 0 (not logic : i have plenty of temp store > files) > - Queue.MemoryPercentUsage = 0 (???) > - Queue.CursorMemoryUsage=435215400 > - Queue.CursorPercentUser=324 (???) > > =========================== > = ActiveMQ full configuration : > =========================== > <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 > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd"> > > <!-- Allows us to use system properties as variables in this > configuration > file --> > <bean > > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> > <property name="locations"> > > <value>file:C:\xxx\Experimental\maven.1236678842549\src\test\resources\jms2\activemq.properties</value> > </property> > </bean> > > <!-- The store, declared as bean due to > http://issues.apache.org/activemq/browse/AMQ-2064 --> > <bean id="store" > class="org.apache.activemq.store.amq.AMQPersistenceAdapter"> > <!-- Data directory --> > <property name="directory" value="${activemq.base}/data"/> > <!-- 64 mb --> > <property name="maxFileLength" value="67108864"/> > <!-- References to files --> > <property name="persistentIndex" value="true"/> > </bean> > > > <!-- The broker --> > <broker xmlns="http://activemq.apache.org/schema/core" > persistent="true" > advisorySupport="false" useJmx="true" brokerName="LCH.TEST" > monitorConnectionSplits="false" > splitSystemUsageForProducersConsumers="false" start="false" > persistenceAdapter="#store"> > > <!-- Destination specific policies using destination names > or wildcards > --> > <destinationPolicy> > <policyMap> > <policyEntries> > <!-- *** producerFlowControl=false > --> > <!-- When this is added, all your > queues will start persisting their > messages to the disk. --> > <!-- Freeing your RAM to consume > more messages w/o any slowdowns. --> > <!-- *** memoryLimit : Per queue > memory limit --> > <policyEntry queue=">" > producerFlowControl="false" memoryLimit="64mb"/> > </policyEntries> > </policyMap> > </destinationPolicy> > > <!-- The transport connectors ActiveMQ will listen to --> > <transportConnectors> > <transportConnector name="LCH" > uri="nio://MIYOPC65:61616"/> > </transportConnectors> > > <!-- Use the following to configure how ActiveMQ is exposed > in JMX --> > <managementContext> > <managementContext createConnector="true"/> > </managementContext> > > <!-- The maximum about of space the broker will use before > slowing down > producers --> > <!-- sendFailIfNoSpace : If no more is available, send > client a JMS > exception --> > <systemUsage> > <systemUsage sendFailIfNoSpace="true"> > <!-- Memory usage max --> > <memoryUsage> > <!-- Sets the memory limit in bytes > (broker global). Setting the limit > in bytes will set the usagePortion to 0 --> > <memoryUsage limit="128mb"/> > </memoryUsage> > > <!-- Storage is used for those messages that > have been sent PERSISTENT > --> > <storeUsage> > <!-- Sets the memory limit in bytes > (broker global). Setting the limit > in bytes will set the usagePortion to 0 --> > <storeUsage limit="88mb" > store="#store" /> > </storeUsage> > > <!-- Temporary storage is used for spooling > out messages that have been > sent NON_PERSISTENT --> > <tempUsage> > <!-- Sets the memory limit in bytes > (broker global). Setting the limit > in bytes will set the usagePortion to 0 --> > <tempUsage limit="160mb"/> > </tempUsage> > </systemUsage> > </systemUsage> > </broker> > > <!-- > ** Lets configure some Camel endpoints > ** > ** http://activemq.apache.org/camel/components.html > --> > > <!-- configure the camel activemq component to use the current > broker --> > <bean id="activemq" > class="org.apache.activemq.camel.component.ActiveMQComponent"> > <property name="connectionFactory"> > <bean > class="org.apache.activemq.ActiveMQConnectionFactory"> > <property name="brokerURL" > value="vm://localhost?create=false&waitForStart=10000"/> > <property name="userName" > value="${activemq.username}"/> > <property name="password" > value="${activemq.password}"/> > </bean> > </property> > </bean> > </beans> > > -- > View this message in context: > http://www.nabble.com/ActiveMQ---Unable-to-limit-temp-store-tp24309792p24309792.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > > -- http://blog.garytully.com Open Source Integration http://fusesource.com
