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");
}
}
}
}