Загруженные jar-файлы Websphere applications — конфликт путей к классам — обновление сервера MQ

#java #websphere #ibm-mq

#java #websphere #ibm-mq

Вопрос:

Недавно мы обновили наш сервер MQ для приложения, которое находится в WebSphere. В настоящее время мы используем com.ibm.mq.allclient-9.1.0.2.jar версию, совместимую с версией сервера MQ. Однако, RC=2059;AMQ9503 ошибка. Тот же jar отлично работает на сервере Jboss, но выдает указанную выше ошибку в версии Websphere 8X. Я подозреваю, что Websphere runtime, которая имеет аналогичный jar, вызывает эту проблему. Наше свойство classloader приложения — «Родительский загрузчик первым», поэтому я попытался даже определить этот jar как начальный jar в classpath, и даже это не сработало. Есть ли способ проверить все jar-файлы, загруженные в приложение в Websphere? или в любом случае я могу решить эту проблему?

Комментарии:

1. Какую версию WAS вы используете, пожалуйста, укажите все четыре цифры. Можете ли вы также узнать, какая ошибка регистрируется в менеджерах очередей AMQERR01.LOG при получении 2059. Я также уверен, что любая версия WAS 8 была бы несовместима с версией MQ выше 7.5. Также в большинстве случаев вы бы использовали адаптер ресурсов (rar), а не jar.

2. @Shakti Kumar Как сообщает JoshMc, Websphere Application Server версии 8.x включает IBM MQ Resource Adapter (RA) для поддержки развернутых приложений JMS. Этот документ объясняет роль RA и его конфигурацию. Вам не нужно связывать JAR-файлы клиента MQ с вашим приложением.

3. WAAS 8.5 — это версия

Ответ №1:

Попытка ответа, основанная на предыдущих попытках проб и ошибок:

Есть ли способ проверить все jar-файлы, загруженные в приложение в Websphere?

Вы можете просмотреть загруженные классы, нажав на

Приложения > Корпоративные приложения > (развернутое приложение) > Управление модулями > (модуль вашего веб-приложения) > Средство просмотра загрузчика классов

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

Серверы > серверы приложений > (ваш сервер приложений, возможно server1) > служба просмотра загрузчика классов.

В качестве альтернативы, вы также можете записать классы в native_stdout.log, активировав ведение журнала загрузчиков классов, используемых путем проверки

Серверы приложений> server1 > Определение процесса> Виртуальная машина Java, опция «подробная загрузка класса»

и перезапуск сервера.

или в любом случае я могу решить эту проблему?

Вы можете попробовать установить порядок загрузки классов на «родительский последним», чтобы заставить websphere загружать ваш jar первым (если это еще не сделано). Есть несколько мест, в которых есть этот параметр, см.

Приложения > Типы приложений > WebSphere enterprise applications > (развернутое приложение) > Загрузка классов и обнаружение обновлений

и

Корпоративные приложения > (развернутое приложение) > Управление модулями > (ваш веб-модуль), смотрите выпадающий список «порядок загрузки классов»

а также

Серверы приложений > (ваш сервер приложений, возможно server1) > политика загрузки классов «Single», а затем выпадающий список «режим загрузки классов»

(Я надеюсь, что один из этих вариантов или возможностей полезен, другие варианты могут включать установку рассматриваемой jar в качестве разделяемой библиотеки)