Вы должны использовать 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, так и в определенной очереди.