Я пытаюсь создать JMS-соединение из WebSphere App Server 7, но продолжаю получать JMSWMQ2013 (с кодом причины 2020 MQ). Ясно, что это проблема аутентификации, и я могу seemanyothersimilarreports поэтому у меня есть общее представление об общей проблеме.JMSWMQ2013 при подключении от WAS к MQ
Я ожидаю отзывов от нашей оперативной группы относительно точной конфигурации канала, однако, тем временем у меня есть одно замечание, которое довольно озадачивает. Если я использую аутентификацию JAAS в WebSphere для предоставления идентификатора пользователя, я всегда получаю ошибку JMSWMQ2013
. , однако, если явно передать тот же userid для вызова фабрики очереди JMS на createQueueConnection()
, тогда я не получу ошибку аутентификации.
Если честно, я бы ожидал, что обе техники будут вести себя последовательно. Есть ли какая-то тонкость, которую мне не хватает при использовании JAAS для предоставления учетных данных для фабрики соединений очереди JMS?
Редактировать: Я включил трассировку JMS в WAS, используя *=info: JMSApi=all: JMSServer=all: Messaging=all: JMS_WASTraceAdapter=all: com.ibm.mq.*=all: jmsApi=all
, и сравнил вывод по строкам.
При использовании JAAS я могу видеть, что глубоко в недрах JmsXAQueueConnectionImpl
она фактически вызывающий WMQConnection.getProcessUserId()
, который возвращает идентификатор пользователя, что мой WAS экземпляр работает под (который, безусловно, не пользователь, который определен в канале MCAUSER
).
Все это довольно странно ... похоже, что он вообще не собирает запись аутентификации JAAS. Мой QCF определенно использует транспорт CLIENT с псевдонимом конфигурации сопоставления DefaultPrincipalMapping, но по какой-то причине он по-прежнему использует идентификатор пользователя процесса, а не идентификатор пользователя JAAS.
Спасибо. Craig
Спасибо, что подтвердили мое понимание. Основываясь на ваших мыслях о проверке идентификатора пользователя, я обновил свой первоначальный вопрос, чтобы предоставить немного больше информации. Похоже, учетные данные JAAS просто игнорируются. –