Потребительская служба не удаляет все сообщения из очереди ActiveMQ

У меня есть служба Windows, которая пытается использовать сообщения из очереди ActiveMQ. Тем не менее, он получает только некоторые сообщения, а другие застревают в "ожидающих сообщениях" в очереди. ActiveMQ сообщает, что поставил в очередь, скажем, 500 сообщений потребителю, но только 300 были сняты с очереди. В службе настроено более одного слушателя. Вот важная часть кода:

private void setupListener(string queue, string brokerUri)
{
    try
    {
        ISession session = connectionConsumers[brokerUri].CreateSession();
        session.CreateConsumer(session.GetQueue(queue))
               .Listener += new MessageListener(consumer_Listener);
    }
    catch (Exception ex)
    {
        Log.Error("An exception has occured setting up listener for " + queue + " on " + brokerUri + ": {0}, {1}", ex, ex.Message);
    }
}

void consumer_Listener(IMessage message)
{
    try
    {
        processLog((message as ITextMessage).Text);
        message.Acknowledge();
    }
    catch (NMSException ex)
    {
        Log.Error("ActiveMQ Connection Failure: {0}, {1}", ex, ex.Message);
    }
    catch (Exception ex)
    {
        Log.Error("An exception has occured trying to process a message: {0}, {1}", ex, ex.Message);
    }
}

Есть ли что-то не так с тем, как я распознаю сообщения, которые могут привести к тому, что некоторые из них не будут подтверждены? Это проблема параллелизма? Я не уверен, что они все еще проходят через функцию processLog (добавлена ​​в мою базу данных).

РЕДАКТИРОВАТЬ: Я думаю, что это больше связано с подтверждениями не происходит должным образом (по некоторым причинам). Я не получаю исключения, добавленные в мои журналы. Однако activemq показывает следующее: Очередь отправки заполняется

Из того, что я прочитал, очередь отправки заполняется сообщениями, которые были отправлены потребителю, но не подтверждены. Почему это может быть?

1 ответ

Решение

Проблема была связана с тем, что наши очереди были виртуальными пунктами назначения.

Другие вопросы по тегам