Не отображаются свойства сообщения, которые я явно установил (Spring / JMS / MQ)

Два отдельных процесса обмениваются данными через JMS через MQ.

Писатель устанавливает свойство строки:

new MessageAction() {
    public void actOn(Message message) throws JMSException {
        logger.debug("Setting message property (GmmThreadId, CASHFLOW-1234)");
        message.setStringProperty("GmmThreadId", "CASHFLOW-1234");
    }
});

Этот MessageAction выполняется, как показано в журналах:

Setting message property (GmmThreadId, CASHFLOW-1234)


Читатель использует селектор сообщений для получения этого сообщения. (с использованием Spring JmsTemplate v1 - старая версия, которую я знаю, но она встроена в структуру нашего поставщика, и мы вынуждены ее использовать.)

template.receiveSelected(queue, "GmmThreadId = 'CASHFLOW-1234' or GmmThreadId IS NULL");

В очереди находятся только сообщения, журналы которых показывают, что писатель установил свойство сообщения. В журналах для читателя я перечисляю свойства, а также пытаюсь записать значение GmmThreadId. Это также показывает, что свойство GmmThreadId не существует.

message property JMS_IBM_PutDate = 20111003
message property JMSXAppID = WebSphere MQ Client for Java
message property JMS_IBM_Format = MQSTR
message property JMS_IBM_PutApplType = 28
message property JMS_IBM_MsgType = 8
message property JMSXUserID = MUSR_MQADMIN
message property JMS_IBM_PutTime = 23551798
message property JMSXDeliveryCount = 2
message had GmmThreadId property of null

Обратите внимание: если мой селектор сообщений только "GmmThreadId = 'CASHFLOW-1234'", то из очереди ничего не удаляется.

Используя WebSphere MQ Explorer для просмотра сообщения, я не могу найти нигде, чтобы просмотреть свойства сообщения, заданные приложением. Тип сообщения - MQSTR, если это имеет значение.

Приложения для чтения и записи работают в WebSphere v6.

Где я ошибаюсь?


person Synesso    schedule 04.10.2011    source источник


Ответы (1)


Как указано в этой ветке, свойства сообщения будут подавлены, если место назначения тип - "MQ". Для меня это настраивается в консоли WebSphere App Server. Я изменил тип очереди на «JMS», и свойства сообщения были сохранены.

person Synesso    schedule 04.10.2011
comment
Также обратите внимание, что инструмент rfhutil.exe в Пакет поддержки IH03 позволит просматривать всевозможные расширенные свойства сообщений. - person Synesso; 05.10.2011
comment
Спустя 3 месяца я совсем забыл об этом. StackOverflow снова приходит на помощь! - person Synesso; 12.01.2012