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 <andrew.hu...@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$conditionobj...@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.