activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kelly Elias (JIRA)" <>
Subject [jira] Created: (AMQNET-301) Session.CreateSession creates a thread that never gets disposed.
Date Wed, 05 Jan 2011 19:53:47 GMT
Session.CreateSession creates a thread that never gets disposed.

                 Key: AMQNET-301
             Project: ActiveMQ .Net
          Issue Type: Bug
          Components: NMS
    Affects Versions: 1.4.1, 1.4.0, 1.3.0, 1.2.0
         Environment: Tested on Windows 7 and Windows Server 2008
            Reporter: Kelly Elias
            Assignee: Jim Gomes
            Priority: Critical

The Factory.CreateSession function creates a thread that never gets disposed.

If you run the code in visual studio and step through each line you will notice that on the
first iteration of the loop two threads are created on the factory.CreateConnection line.
Only one is cleaned up. Then each iteration after one thread is created on factory.CreateSession
and is cleaned up correctly, but a second on is created on connection.CreateSession and is
not cleaned up. Every iteration will then make a thread on connection.CreateSession that does
not get cleaned up.

Interesting, this occurs with every version I've tested except the old 1.1 version. That version
cleans up correctly.

CODE TO REPRODUCE THE ISSUE-----------------------------------------------------------------

using System;
using System.Threading;
using Apache.NMS;
using Apache.NMS.ActiveMQ;
using Apache.NMS.ActiveMQ.Commands;

namespace ThreadTest
    internal class Program
        private static void Main(string[] args)
            while (true)

                IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616/");
                using (IConnection connection = factory.CreateConnection())
                    //Create the Session
                    using (ISession session = connection.CreateSession())
                        //Create the Producer for the topic/queue
                        IMessageProducer prod = session.CreateProducer(new ActiveMQTopic("KELLYTEST"));

                        ITextMessage msg = prod.CreateTextMessage();
                        msg.Text = "test";

                        prod.Send(msg, MsgDeliveryMode.NonPersistent, MsgPriority.Normal,


This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message