谁能告诉我如何在c#中为活动的mq主题消息创建持久的发布者和订阅者?

时间:2014-04-18 13:26:25

标签: c# jms activemq

这是我来自订阅者的现有代码,但它无法正常工作

_connection = factory.CreateConnection();

_connection.ClientId = "ID";

_connection.Start();

_session = _connection.CreateSession();

ITopic dest = _session.GetTopic(QUEUE_DESTINATION);

        using (IMessageConsumer consumer = _session.CreateDurableConsumer(dest,"myDurable",null,false))
        {
            IMessage message;

            while(true)
            {

            while ((message = consumer.Receive(TimeSpan.FromMilliseconds(5000))) != null)
            {

                var objectMessage = message as IObjectMessage;

                if (objectMessage != null)
                {
                    person = objectMessage.Body as Person;

                    if (person != null)
                    {
                        Console.WriteLine(person.FirstName);

                        Console.WriteLine(person.LastName);
                    }
                }

                else
                {
                    Console.WriteLine("Object Message is null");
                }
            }
        }

我也不确定是否需要在发布商方面做任何事情。 当发布者和订阅者都是UP和RUNNING时,此代码完美有效, 但是当订户处于DOWN状态并且再次UP和RUNNING时,排队的消息不会出列。我还在活动的mq控制台中验证了这一点。创建了持久的消费者,但我没有在订阅者中收到消息。

1 个答案:

答案 0 :(得分:0)

问题是我没有先运行用户程序。必须运行,以便您的订阅者首先向activemq注册。您可以在“订购者”选项卡下的活动mq控制台中找到持久消费者。