Невозможно настроить HermesJMS с WebSphere MQ 8 в RedHat Enterprise Linux
Я пытаюсь настроить HermesJMS v1.14
с WebSphereMQ v8.0
, но я не могу. Я видел несколько учебных пособий и следовал им, хотя ни одна из них не была именно такой версией.
Это один из них http://www.hermesjms.com/demos/demo_mq.html.
Это то, что я сделал. Я скачал эту пробную версию 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 и устанавливаю провайдера как в первой части http://www.hermesjms.com/demos/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
Подожди, нашел решение. Сначала вы должны выбрать имя группы classpath, в случае выше ее WMQ7, из выпадающего списка в средней панели рядом с 'Loader:' Затем вернитесь на первую панель и выберите 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
группа.
Надеюсь, ты сможешь мне помочь.
Благодарю.
4 ответа
Затем я открываю HermesJMS и устанавливаю провайдера, как в первой части http://www.hermesjms.com/demos/demo_mq.html, но библиотеки...
Возможно, вы захотите попробовать использовать спецификацию IBM для CLASSPATH
как указано в том же руководстве по документации, которое вы связали выше. На их странице Переменные среды, используемые классами IBM MQ для JMS, объясняется, что в CLASSPATH
и манифест тянет в других.
На той же странице также объясняется, что setmqjmsenv
Программа может быть использована для настройки среды. Вы можете запустить его, затем записать настройки переменных среды и настроить Hermes для их наследования через явные настройки или через идентификатор службы, использованный для его запуска.
Кроме того, обязательно используйте предоставленные IBM инструменты, чтобы проверить, правильно ли установлен клиент и что вы можете подключиться к MQ с помощью зарекомендовавшего себя программного обеспечения. Было бы неудачно бороться с Гермесом в течение недели только для того, чтобы узнать, что прослушиватель MQ находится на другом порту или что вы неправильно написали название канала.
Вы не упомянули, что применили пакет Fix Pack. В 8.0.0.1-3 есть ряд исправлений Java, которые могут сделать вашу настройку более интересной, и которую вы бы хотели избежать.
Я скачал эту пробную версию
MQ V8.0 Trial for Multiplatform Multilingual eAssembly
...
Если вы перейдете на вики -страницу тега websphere-mq, вы найдете ссылки на MQ Advanced для разработчиков. Это полнофункциональная, не истекающая версия MQ, которую вы можете получить бесплатно. Пробная загрузка в конечном итоге истекает. Надеюсь, не до того, как Гермес заговорит с ним, но срок его действия истечет, как правило, в самый неподходящий момент.
Там тоже будет какой-то ссылка на пакеты исправлений, но вы можете также легко (да, это спорно) найти их, перейдя в IBM Fix Central и поиск.
Если вы открыты для использования другого инструмента, кроме HermesJMS, то вы можете попробовать JMSToolbox (из sourceforge). Его гораздо проще использовать, чем HermesJMS (ОК, мой совет необъективен, я автор JMSToolbox..lol)
Вместо того, чтобы делать проверку клиента необязательной при подключении - обычно ответ на все вопросы, как представляется, всегда отключает всю безопасность и аутентификацию - отредактируйте сеанс, добавив идентификатор пользователя и пароль. Как правило, это должен быть идентификатор пользователя, который вы входите в систему, в которой работает администратор очередей, и соответствующий пароль. (То есть тот, который вы использовали в качестве принципала в вашей команде setmqaut.)
Отредактируйте сеанс, установите флажок рядом с "user:" внизу и добавьте пользователя и пароль, примените и все готово.
Надеюсь это поможет.
Благодаря @Umapathy и @T.Rob.
Я мог бы найти журнал. Я отвечаю на свой вопрос всем, у кого такая же проблема. Это мой файл ошибок:
AMQ5540: Приложение 'hermes.browser.HermesBrowser' не предоставило идентификатор пользователя и пароль
ОБЪЯСНЕНИЕ: администратор очередей настроен на запрос имени пользователя и пароля, но ни один из них не был указан.
ДЕЙСТВИЕ: Убедитесь, что приложение предоставляет действительный идентификатор пользователя и пароль, или измените конфигурацию администратора очередей на НЕОБЯЗАТЕЛЬНО, чтобы разрешить приложениям подключаться, которые не предоставили идентификатор пользователя и пароль.
А потом я нашел этот Websphere MQ v8 - MQRC_NOT_AUTHORIZED - 2035
Так я и сделал:
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
И теперь я могу подключиться.
Спасибо за вашу помощь!