'пытается сделать простой паб/sub с помощью ActiveMq. Я могу заставить все работать нормально, но абонент отключается примерно через 30 секунд. Я искал тип значения тайм-аута, который я могу изменить, но ничего не работает. Вот абонент:ActiveMq NMS Отключает примерно через 30 секунд
using System;
using Apache.NMS;
using Apache.NMS.ActiveMQ;
using Apache.NMS.ActiveMQ.Commands;
namespace ActiveMQCatcher
{
internal class Program
{
private static void Main(string[] args)
{
IConnectionFactory factory = new ConnectionFactory("tcp://localhost:61616/");
using (IConnection connection = factory.CreateConnection())
{
connection.ClientId = "MYID";
connection.Start();
using (ISession session = connection.CreateSession())
{
IMessageConsumer consumer = session.CreateConsumer(new ActiveMQTopic("MYTOPIC"), null, false);
consumer.Listener += consumer_Listener;
Console.ReadLine();
}
connection.Stop();
}
}
private static void consumer_Listener(IMessage message)
{
Console.WriteLine("Got: " + ((ITextMessage) message).Text);
}
}
}
Я попытался это:
connection.RequestTimeout = TimeSpan.MaxValue;
Но это, похоже, ничего не менять.
Чтобы решить эту проблему, просто запустите программу и подождите около 30 секунд. Вы можете видеть, что соединение исчезает в консоли ActiveMQ (http://localhost:8161/admin/connections.jsp по умолчанию)
Любые идеи?
Хороший улов. Пока я должен был реализовать его так, зная, что есть потенциал утечки. Все еще не нашли лучшего способа. – Kelly