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/06/24 13:10:42 UTC

4.1.1 to 5.1.0 eating heap space

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>

Re: 4.1.1 to 5.1.0 eating heap space

Posted by Jean-Yves LEBLEU <jl...@gmail.com>.
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>
>
>