You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by ee7arh <an...@2e-systems.com> on 2009/06/12 14:27:19 UTC

Re: Build up of Threads using Multicast Discovery Agent - eventually out of memory

Hi Gary,

Thanks for the info, I added this info into the ticket.

I will look at creating a test case for this.

BRegards
Andrew


Gary Tully wrote:
> 
> this seems to be an incarnation of issue:
> https://issues.apache.org/activemq/browse/AMQ-2283
> If you can  add some detail and a simple test case to that issue it would
> be
> a great help.
> and vote for it also.
> 
> 2009/6/11 ee7arh <an...@2e-systems.com>
> 
>>
>> Hi,
>>
>> I have a problem that my application runs out of memory after a few days.
>> I
>> ran jconsole against it and notice that the threads are building up and
>> up.
>> In the "Threads" section of jconsole, I see that the vast majority of
>> Threads are "Multicast Discovery Agent Notifier" so I think the problem
>> is
>> related to this.
>>
>> My application uses ActiveMQ message broker and Camel router internally
>> and
>> sends messages to other external message brokers which it discovers using
>> Multicast discovery.
>>
>> Here is an extract of the Spring configuration file (the application is
>> launched from Spring)
>>
>> <!-- ActiveMQ broker listening on port 61618 -->
>>    <broker:broker useJmx="false" persistent="true"
>> brokerName="localhost">
>>
>>        <broker:persistenceAdapter>
>>            <broker:amqPersistenceAdapter
>> directory="../../activemq-data-eventgen" maxFileLength="32mb"/>
>>        </broker:persistenceAdapter>
>>
>>        <broker:transportConnectors>
>>            <broker:transportConnector name="tcp"
>> uri="tcp://localhost:61618"/>
>>        </broker:transportConnectors>
>>    </broker:broker>
>>
>>
>>    <!-- configure the Camel JMS consumer to use the ActiveMQ broker
>> declared above -->
>>    <bean id="jmsExternal"
>> class="org.apache.camel.component.jms.JmsComponent">
>>        <property name="connectionFactory">
>>            <bean class="org.apache.activemq.ActiveMQConnectionFactory">
>>                <!-- use multicast to detect other broker -
>> group=groupName
>> of network to look for -->
>>                <property name="brokerURL"
>>
>> value="discovery:(multicast://default?group=testbroker)?initialReconnectDelay=100"/>
>>            </bean>
>>        </property>
>>    </bean>
>>
>> To send a message to the external queue "jmsExternal" I call the method
>> in
>> POJO object:
>>
>> camelTemplate.sendBody(x,y);
>>
>> Only thing I noticed in the logs is that every time my application wants
>> to
>> send a message, it seems to rediscover the brokers each time and prints
>> them
>> out in the logs however I have no idea on the internal working of
>> multicast
>> discovery so that could be completely normal.
>>
>> I am using activeMQ 5.2.0 but the brokers which are being discovered are
>> using the FUSE 5.3 version.
>>
>> If select one of the thousands of Multicast threads displayed in
>> Jconsole,
>> they all have the same stack trace as this:
>>
>> Name: Multicast Discovery Agent Notifier
>> State: WAITING on
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1ce7f98
>> Total blocked: 0  Total waited: 1
>>
>> Stack trace:
>> sun.misc.Unsafe.park(Native Method)
>> java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>> java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
>>
>> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>>
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>> java.lang.Thread.run(Thread.java:619)
>>
>>
>> Help appreciated.
>>
>> BRegards
>> Andrew
>> --
>> View this message in context:
>> http://www.nabble.com/Build-up-of-Threads-using-Multicast-Discovery-Agent---eventually-out-of-memory-tp23982888p23982888.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> http://blog.garytully.com
> 
> Open Source Integration
> http://fusesource.com
> 
> 

-- 
View this message in context: http://www.nabble.com/Build-up-of-Threads-using-Multicast-Discovery-Agent---eventually-out-of-memory-tp23982888p23997896.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.