The following code creates a connection to an OpenWire transport connector, waits for 1 second and then closes the session/connection. Looking at JConsole ... ActiveMQ reports the connection as open. Too many open connections and ActiveMQ stops processing messages.

However if the connection is not closed by the application and the application is killed using Ctrl-C ... then ActiveMQ closes the connections.

Is there something obvious that I'm doing wrong or is this a bug in the TcpTransport code?



using System;
using System.Threading;
using NMS;

namespace ActiveMQ {
   class TestMain {

       static void Main(string[] args) {

           Uri uri = new Uri("tcp://activemqserver:61616");

           ConnectionFactory factory = new ConnectionFactory(uri);
           IConnection connection = null;
           ISession session = null;

           try {
               connection = factory.CreateConnection();
               Console.WriteLine("Connection Created");

               connection.ClientId = "[test1] " + connection.ClientId;

               session = connection.CreateSession();
               Console.WriteLine("Session Created");

               Thread.Sleep(1000);

           } finally {
               session.Close();
               connection.Close();
               Console.WriteLine("Connection Closed");
           }
       }
   }
}

Reply via email to