You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Jean-Yves LEBLEU <jl...@gmail.com> on 2008/08/20 11:41:49 UTC

Re: 4.1.1 to 5.1.0 eating heap space

Hello all,

Coming back on this problem it seems that if I remove the broker from my
webapp and run an external broker, I have no more OutOfMemoryError.

Now if I run an embedded broker without any memory limit parameters, I run
out of java heap space.
If I put some destinationPolicy and systemUsage , I do not run any more out
of java heap space.

Thanks for any ideas.

Jean-Yves

On Tue, Jun 24, 2008 at 1:10 PM, Jean-Yves LEBLEU <jl...@gmail.com> wrote:

> Hello to all,
>
> My last chance, I've spend last hours to make it work, modifying a lot of
> parameters but without any success ...
>
> We have a web application using Spring 2.5.4 and ActiveMQ which is working
> very well, with ajax access etc ... and we would like to upgrade to 5.1.0.
> The configuration is very simple, no persistance and we use only temporary
> topics.
> Works well also but eating memory, and we finish by a beautiful "ActiveMQ
> java.lang.OutOfMemoryError: Java heap space"
>
> Does anybody has an idea of what we forgot to change ? or what is needed to
> be changed when upgrading from 4.1 to 5.1 ?
>
> Thanks for any answer or any pointer to documentation / forum I may have
> missed ...
>
> Jean-Yves
>
> Here is the spring config :
> <beans>
>     <bean id="brokerContainer"
>         class="org.apache.activemq.xbean.BrokerFactoryBean">
>         <property name="config" value="classpath:activemq.xml" />
>     </bean>
>     <bean id="wbmPrefetchPolicy"
> class="org.apache.activemq.ActiveMQPrefetchPolicy" >
>        <property name="topicPrefetch" value="10000"></property>
>     </bean>
>     <!-- JMS ConnectionFactory to use -->
>     <bean id="jmsFactory"
>         class="org.apache.activemq.ActiveMQConnectionFactory">
>         <property name="brokerURL"
>             value="vm://wbm?broker.persistent=false" />
>             <property name="prefetchPolicy"
> ref="wbmPrefetchPolicy"></property>
>     </bean>
>
>
>     <!-- Spring JMS Template -->
>     <bean id="myJmsTemplate"
>         class="org.springframework.jms.core.JmsTemplate">
>         <property name="connectionFactory">
>             <!-- lets wrap in a pool to avoid creating a connection per
> send -->
>             <bean
>
> class="org.springframework.jms.connection.SingleConnectionFactory">
>                 <property name="targetConnectionFactory">
>                     <ref local="jmsFactory" />
>                 </property>
>             </bean>
>         </property>
>         <property name="pubSubDomain" value="true"></property>
>         <property name="timeToLive" value="5000"></property>
>     </bean>
>
>
> And active MQ config
>
> <beans>
>   <bean
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
>
>   <broker useJmx="false"  brokerName="wbm" xmlns="
> http://activemq.org/config/1.0" persistent="false">
>
>     <transportConnectors>
>       <transportConnector uri="tcp://localhost:61618" />
>       <transportConnector uri="stomp://localhost:61668"/>
>     </transportConnectors>
>
>      <destinationPolicy>
>       <policyMap>
>         <policyEntries>
>
>           <policyEntry topic="wbm.>">
>             <!-- lets force old messages to be discarded for slow consumers
> -->
>             <pendingMessageLimitStrategy>
>               <constantPendingMessageLimitStrategy limit="30"/>
>             </pendingMessageLimitStrategy>
>           </policyEntry>
>         </policyEntries>
>       </policyMap>
>     </destinationPolicy>
>
>   </broker>
>
> </beans>
>
>