On 11/27/2015 03:29 PM, megakid wrote: > Hi all, > > I'm doing a deep dive debugging exercise on Apache.NMS.ActiveMQ 1.7.1 at the > moment and struggling! We recently saw one of our new services in the wild > with over 300 threads named as "ActiveMQ Task" with > "Apache.NMS.ActiveMQ.dll!Apache.NMS.ActiveMQ.Threads.DedicatedTaskRunner.Run" > as the top stack frame. We are trying to establish why the C# NMS library > has created all these threads. Some questions... > > I cannot find the Apache.NMS.ActiveMQ source code anywhere, only some out of > date mentions/links - I assume it is not open sourced any more? > > I've spent all day trying to reproduce the issue but I can only ever get a > maximum of 1 thread per session at any point in time (as expected). I am as > sure as I can be that we are not creating more than 10 or so sessions over a > single, global connection (assume that for now) - we call, in short, > session.CreateConsumer(dest).Listener += [ourHandler]; - in my debugging > I've established that this creates a thread on CreateConsumer, then throws > that thread away and is replaced with a new one when the Listener += is > executed - it doesn't seem to leak anything here. Are there any other > scenarios (failure cases etc) where it may leak these threads? > > I have looked at the decompiled source to get an indication of when these > threads are spawned and, ignoring `dedicatedTaskRunner = false` which I know > is possible, can only see the FailoverTask and the SessionExecutor that uses > the DedicatedTaskRunner (which creates threads named "ActiveMQ Task"). > > It is a very busy service so after consulting > http://activemq.apache.org/how-to-deal-with-large-number-of-threads-in-clients.html > I thought it might be due to load - but I can't see where any of that code > can live inside NMS, am I right in thinking that the C# NMS library is > designed to not have more than 1 thread per session (e.g. I should ignore > that webpage)? > > In case anyone is interested, we are using the Obvs library to connect to > ActiveMQ - the topic subscription part is here: > https://github.com/inter8ection/Obvs.ActiveMQ/blob/master/Obvs.ActiveMQ/MessageSource.cs > > Has anyone else had this issue and what did you do to diagnose it? > > Thanks very much! > > > > -- > View this message in context: > http://activemq.2283324.n4.nabble.com/Apache-NMS-ActiveMQ-Threads-C-tp4704338.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > Code is here: http://svn.apache.org/repos/asf/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk
Happy debugging -- Tim Bish Sr Software Engineer | RedHat Inc. [email protected] | www.redhat.com twitter: @tabish121 blog: http://timbish.blogspot.com/
