Невозможно настроить HermesJMS с WebSphere MQ 8 в RedHat Enterprise Linux

Я пытаюсь настроить HermesJMS v1.14 с WebSphereMQ v8.0, но не могу. Я видел несколько руководств и следил за ними, хотя ни одна из них не была именно такой версией.

Это то, что я сделал. Я скачал пробную версию MQ V8.0 Trial for Multiplatform Multilingual eAssembly. Я установил его, следуя этим инструкциям http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.ins.doc/q008640_.htm?lang=en.

Затем я открываю HermesJMS и устанавливаю поставщика как первую часть demo_mq.html (устаревшая ссылка удалена), но библиотеки:

  • com.ibm.mq.commonservices.jar
  • com.ibm.mq.jar
  • com.ibm.mqjms.jar
  • com.ibm.mq.pcf.jar

Затем я нажимаю на Scan, это важно, потому что этот шаг должен загрузить все классы банок, которые мы должны использовать позже.

Затем я создаю сеанс, используя загрузчик, который я только что настроил, и, когда вы меняете загрузчик, комбинация с классами должна обновляться с помощью фабрик соединений, в частности, я должен использовать com.ibm.mq.jms.MQQueueConnectionFactory, но он не появляется, кажется как предыдущий шаг сканирования не работает.

Я заглянул в банки и знаю, что класс MQQueueConnectionFactory находится внутри com.ibm.mq.jar.

Итак, есть ли какой-либо шаг, который я забыл? Нужны ли мне другие библиотеки?

Не стесняйтесь спрашивать дополнительную информацию.

Заранее спасибо.

ОБНОВИТЬ:

Добавление дополнительной информации на основе ответа T.Rob

Вы не упомянули, что применили Fix Pack. В версии 8.0.0.1-3 есть ряд исправлений Java, которые могут сделать вашу установку более интересной и которых вам следует избегать.

Да, я использовал его, я забыл упомянуть об этом, извините.

На той же странице также объясняется, что для настройки среды можно использовать программу setmqjmsenv.

Я не упоминал об этом, я использовал setmqenv для настройки переменной окружения PATH.

РЕШЕНИЕ этой 1-й проблемы:

Я уже решил это, но я думаю, что для этого нет «процедуры», я нашел это в этом Интернете http://talksoa.blogspot.com.es/2013/12/configure-hermes-jms-to-connect.html

Подожди, нашел решение. Сначала вы должны выбрать имя группы пути к классам, в случае выше его WMQ7, из раскрывающегося списка в средней панели рядом с «Загрузчиком»: Затем вернитесь на первую панель и выберите IBM WebSphereMQ в разделе «Плагин».

Я сделал что-то подобное и вуаля! Появляется класс. Теперь я пытаюсь настроить свойства:

  • Подключаемый модуль: IBM WebSphereMQ
  • Фабрика соединений: Класс -> com.ibm.mq.jms.MQQueueConnectionFactory
  • Свойство: hostName ->
  • Свойство: порт -> (мне пришлось изменить порт по умолчанию 1414)
  • Свойство: queueManager -> MY.QUEUE.MANAGER
  • Свойство: transportType -> 1

И когда я делаю Right button -> Discover, я получаю следующую ошибку:

ERROR hermes.browser.tasks.HermesBrowserTaskListener - MQJE001: Completion Code '2', Reason '2035'.

Я искал эту ошибку, и, похоже, это ошибка авторитета, поэтому я сделал:

setmqaut -m MY.QUEUE.MANAGER -t qmgr -g <myUser> +all

myUser — это пользователь, которого я добавил в группу mqm.

Надеюсь, вы можете мне помочь.

Спасибо.


person Alavaros    schedule 10.09.2015    source источник
comment
Что говорит журнал ошибок qmgr (обычно /var/mqm/qmgrs/MY.QUEUE.MANAGER/errors/AMQERR01.LOG).   -  person Umapathy    schedule 13.09.2015
comment
Привет @Umapathy, я искал этот журнал не по тому пути, я проверю его. Спасибо.   -  person Alavaros    schedule 14.09.2015


Ответы (4)


Затем я открываю HermesJMS и устанавливаю провайдера как первую часть http://www.hermesjms.com/demos/demo_mq.html, но библиотеки...

Возможно, вы захотите попробовать использовать спецификацию IBM для CLASSPATH, которую можно найти в том же руководстве по документации, на которое вы ссылались выше. Их страница Переменные среды, используемые классами IBM MQ для JMS, объясняют, что вам нужно включить только одну банку в CLASSPATH, а манифест подтянет остальные.

На той же странице также объясняется, что программу setmqjmsenv можно использовать для настройки среды. Вы можете запустить его, затем зафиксировать настройки переменных среды и организовать для Hermes их наследование через явные настройки или через идентификатор службы, используемый для ее запуска.

Кроме того, не забудьте использовать предоставляемые IBM инструменты для проверки правильности установки клиента и возможности подключения к MQ с помощью заведомо исправного программного обеспечения. Было бы прискорбно, если бы вы неделю боролись с Hermes только для того, чтобы узнать, что слушатель MQ находится на другом порту или что вы неправильно написали имя канала.

Вы не упомянули, что применили Fix Pack. В версии 8.0.0.1-3 есть ряд исправлений Java, которые могут сделать вашу установку более интересной и которых вам следует избегать.

Я скачал пробную версию MQ V8.0 Trial for Multiplatform Multilingual eAssembly...

Если вы перейдете к websphere-mq тег wiki, вы найдете ссылки на MQ Advanced for Developers. Это полнофункциональная версия MQ с неограниченным сроком действия, которую вы можете получить бесплатно. Пробная загрузка в конечном итоге истечет. Надеюсь, не раньше, чем вы заговорите с Гермесом, но срок его действия истекает, и обычно в самый неподходящий момент.

Там также будет несколько ссылок на пакеты исправлений, но вы также можете легко (да, это спорно) найти их, перейдя на IBM Fix Central и выполнив поиск.

person T.Rob    schedule 10.09.2015
comment
Привет T.Rob, я обновил вопрос, отвечая на ваш вопрос и рекомендации. Я также добавил сообщение с дополнительной информацией. Спасибо. - person Alavaros; 11.09.2015

Спасибо @Umapathy и @T.Rob.

Я мог найти журнал. Отвечаю на свой вопрос тем, у кого такая же проблема. Это мой файл ошибок:

AMQ5540: Приложение «hermes.browser.HermesBrowser» не предоставило идентификатор пользователя и пароль.

ОБЪЯСНЕНИЕ: Администратор очередей настроен на запрос идентификатора пользователя и пароля, но они не были предоставлены.

ДЕЙСТВИЕ: Убедитесь, что приложение предоставляет действительный идентификатор пользователя и пароль, или измените конфигурацию администратора очередей на НЕОБЯЗАТЕЛЬНУЮ, чтобы разрешить подключение приложений, которые не предоставили идентификатор пользователя и пароль.

А потом я нашел это Websphere MQ v8 - MQRC_NOT_AUTHORIZED - 2035

Так я и сделал:

ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)

И теперь я могу подключиться.

Спасибо за вашу помощь!

person Alavaros    schedule 14.09.2015

Если вы открыты для использования другого инструмента, кроме HermesJMS, то вы можете попробовать JMSToolbox (из sourceforge). Он намного проще в использовании, чем HermesJMS (хорошо, мой совет предвзят, я автор JMSToolbox.. лол)

person titou10    schedule 08.12.2015

Вместо того, чтобы делать необязательную проверку клиента при подключении - как правило, ответ, который дается на все, всегда кажется отключением всей безопасности и аутентификации - отредактируйте сеанс, чтобы добавить идентификатор пользователя и пароль. Обычно это должен быть идентификатор пользователя, с которым вы входите в систему, в которой работает администратор очередей, и соответствующий пароль. (То есть тот, который вы использовали в качестве принципала в своей команде setmqaut.)

Отредактируйте сеанс, установите флажок рядом с «пользователь:» внизу и добавьте пользователя и пароль, примените и все готово.

Надеюсь это поможет.

person deanej    schedule 04.09.2017
comment
Обратите внимание, что параметр Обнаружить не учитывает и не отправляет указанные имя пользователя и пароль. См. мой ответ на вопрос Ошибка 2035 ('MQRC_NOT_AUTHORIZED ') от HermesJMS до MQ8 для получения более подробной информации. Это работает для всех других действий, таких как просмотр. - person JoshMc; 05.09.2017