MessageConsumer не использует сообщения

Мое приложение работает на Jboss 7.1.1. У меня есть планировщик, который запускается каждую минуту и ​​должен проверять, есть ли сообщения в DLQ, и делать некоторые обновления в БД.

Я написал потребитель сообщений, который прослушивает предопределенный пользовательский DLQ. Проблема в том, что я вижу, что в пользовательском DLQ есть сообщения, но consumer.receiveNoWait()всегда возвращает ноль.

Вот код для создания потребителя:

/*this is running fine and creating the consumer*/
public DestinationHandlerImpl(ConnectionFactory connectionFactory,
    Destination destination, boolean useTransaction, int delMode,
    boolean isProducer) throws JMSException {
    connection = connectionFactory.createConnection();
    consumer = session.createConsumer(destination);
}

Вот код, который использует сообщение (и запускается каждую минуту):

/*this always return null, event when there are messages in the queue*/
public <T extends BaseEvent> T recieveMessage()
        throws JMSException {

    Message message = consumer.receiveNoWait(); // ----> always return null!!!

    if (message != null && !(message instanceof ObjectMessage)) {
        throw new IllegalArgumentException(
                "message object has to be of type ObjectMessage");
    }

    // Extract the object from the message
    return message == null ? null : (T) ((ObjectMessage) message).getObject();

}

Я использовал режим отладки и вижу, что для свойства назначения потребителя установлена ​​правильная очередь, так что я делаю неправильно?

6
задан falsarella 26 August 2014 в 04:22
поделиться