Настройка заголовка MQ в клиенте Java - PullRequest
3 голосов
/ 21 июля 2010

Я хочу установить поле заголовка MQ 'PutApplName' в моем клиенте java и получить доступ к тому же полю в поле JMSXAppID, что и в заголовке JMS. Документы в сети говорят о том, что поля заголовков MQ отображаются на поля JMS. Кто-нибудь пробовал это?

1 Ответ

4 голосов
/ 21 июля 2010

Вы должны использовать WMQ v7 на клиенте и на сервере, чтобы сделать это переносимым способом JMS.Поскольку в следующем году выпуск v6 завершится, надеюсь, вы все равно уже находитесь на v7.В версии 7 все свойства MQMD доступны через свойства сообщений.В v6 необходимо было перейти к специфическим для WMQ Java-классам, и это было не очень красиво.

Тем не менее, обратите внимание на JMS-поля и свойства с соответствующими MQMD-полями , который сопоставляет все поля MQMD с соответствующими свойствами JMS.

Существует пример программы, которая выполняет запись в поля MQMD и которая установлена ​​с клиентом WMQ.Если вы установили полный клиент WMQ, а не просто захватили файлы jar, эта программа будет находиться по адресу: C:\Program Files\IBM\WebSphere MQ\tools\jms\samples\simple\SimpleMQMDWrite.java

В примере программы используется класс WMQConstants, а не кодирование строкового значения напрямую.Вы можете найти документированные константы WMQ здесь .В константах вы должны найти JMS_IBM_MQMD_PUTAPPLNAME здесь .JavaDoc для этого поля говорит:

JMS_IBM_MQMD_PUTAPPLNAME

общедоступная статическая конечная строка JMS_IBM_MQMD_PUTAPPLNAME

свойство JMS_IBM_MQMD_PAME.Устанавливает или получает имя приложения MQ, отправляющее сообщение.Установить с помощью setStringProperty (JmsConstants.JMS_IBM_MQMD_PUTAPPLNAME,);Получить с помощью getStringProperty (JmsConstants.JMS_IBM_MQMD_PUTAPPLNAME);Действительно для объекта сообщения.

Обратите внимание, что приложению должны быть предоставлены + права доступа setall либо путем запуска в группе mqm (НЕ рекомендуется), либо с помощью команды setmqaut.Авторизация + setall должна применяться как в QMgr, так и в определенной очереди.

...