如何保持ActiveMQ连接打开?
How to maintain ActiveMQ connection open?
我正在使用 Apache ActiveMQ 将我的应用程序集成到自定义服务中。我需要一直做这个 运行,而不是像现在这样一次。
下面的代码有效,但仅针对一条消息,我需要保持连接处于活动状态才能接收所有消息。
using (var connection = (Apache.NMS.ActiveMQ.Connection)factory.CreateConnection())
{
connection.UserName = Username;
connection.Password = Password;
using (var session = connection.CreateSession())
{
IDestination destination = SessionUtil.GetDestination(session, "queue://" + Queue);
using (IMessageConsumer consumer = session.CreateConsumer(destination))
//using (IMessageConsumer consumer = session.CreateDurableConsumer(new ActiveMQTopic(Queue), "fpapp", null, false))
{
consumer.Listener += ConsumerOnListener;
connection.Start();
}
}
}
我做了一些研究,发现我应该创建一个耐用的消费者,这就是我尝试过的(注释行)。但是不行,说网络连接无法订阅主题
有什么想法吗?
PS:我是 ActiveMQ 的新手。
谢谢
请将连接对象从 using 块中取出。它会做的。
在 C# 中 API 正常连接是持久的,在 STOMP 中必须设置心跳。
我正在使用 Apache ActiveMQ 将我的应用程序集成到自定义服务中。我需要一直做这个 运行,而不是像现在这样一次。 下面的代码有效,但仅针对一条消息,我需要保持连接处于活动状态才能接收所有消息。
using (var connection = (Apache.NMS.ActiveMQ.Connection)factory.CreateConnection())
{
connection.UserName = Username;
connection.Password = Password;
using (var session = connection.CreateSession())
{
IDestination destination = SessionUtil.GetDestination(session, "queue://" + Queue);
using (IMessageConsumer consumer = session.CreateConsumer(destination))
//using (IMessageConsumer consumer = session.CreateDurableConsumer(new ActiveMQTopic(Queue), "fpapp", null, false))
{
consumer.Listener += ConsumerOnListener;
connection.Start();
}
}
}
我做了一些研究,发现我应该创建一个耐用的消费者,这就是我尝试过的(注释行)。但是不行,说网络连接无法订阅主题
有什么想法吗?
PS:我是 ActiveMQ 的新手。
谢谢
请将连接对象从 using 块中取出。它会做的。 在 C# 中 API 正常连接是持久的,在 STOMP 中必须设置心跳。