如何维护ActiveMQ连接?

时间:2015-10-07 18:51:07

标签: c# activemq nms

我使用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来说是全新的。

由于

1 个答案:

答案 0 :(得分:1)

请从连接对象中取出使用块。它会的。 在C#API中,正常连接是持久的,在STOMP中必须设置心跳。