2014-05-07 2 views
3

Я пытаюсь подключить диспетчер очереди из автономной программы и получаю следующую ошибку.Подключение IBM MQ из автономной программы | Ошибка: ('MQRC_NOT_AUTHORIZED')

Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED'). 

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

Но как ни странно, когда я пытаюсь подключиться с сервера приложений Websphere (WAS), я успешно подключен к очереди. Моя автономная программа использует тот же JDK, что и WAS.

Должен ли JVM ID для обеих этих программ одинаковым?

Я использую файл CCDT для подключения к очереди.

ответ

3

Ну, это ошибка авторизации при подключении клиента. Никаких сомнений насчет этого. См. here для устранения неполадок техно.

Для начала убедитесь, что пользователь, которому вы пользуетесь, получил соответствующие права (это не так). Убедитесь, что вы не используете учетную запись администратора MQ с WMQ v7.1 или новее. С 7.1 Администраторы MQ не могут создавать клиентское соединение с настройкой по умолчанию. Это значение по умолчанию можно изменить. См. here.

Одним из вариантов является использование пользователя MCA на клиентском канале. Это переопределяет любой пользователь, которого вы передаете. Объясняется here.

WAS использует либо режим подключения пользователей, либо привязку.

+0

Чтобы добавить к этому ответу (спасибо за ссылку, что Technote, кстати), идентификатор, отправленный клиентом Java/JMS WMQ, зависит от того, какую версию вы используете. Но попытка заставить клиента отправить правильный идентификатор является контрпродуктивным. Если вы разрешаете клиенту устанавливать идентификатор, тогда значение, используемое для авторизации соединения, может измениться и вызвать сбой авторизации. Лучше организовать в QMgr задание желаемого значения «MCAUSER» на основе DN (лучше всего) сертификата, IP-адреса или карты идентификатора, переданного клиентом, но только проверенного и законного из перечисляемого списка, чтобы статическое значение. –

+0

Отображение идентификатора клиента подобно настройке «MCAUSER», упомянутой в ответе, но использует правила «CHLAUTH» для динамической сопоставления или любого количества значений. Кроме того, если используется WMQ Explorer, обязательно установите [SupportPac MS0P] (http://ibm.co/SupptPacMS0P) и включите события авторизации. Это говорит о том, что не удалось выполнить вызов API, связанный с ним объект, идентификатор пользователя, вызывающий вызов, и точные параметры. Это помогает отлаживать ошибки auths, поэтому вы знаете, например, что это «OPEN», а не «CONNECT», что не удалось или наоборот. –

+0

Благодарим вас за ответ. Мы действительно используем авторизацию на стороне QMgr. Просто я запускал отдельную программу с другим пользователем. Я добавил это в список разрешений и решил проблему. – Mehshad

Смежные вопросы