Ошибка Websphere MQ Explorer (AMQ4036) при попытке доступа к MQ в docker (ibmcom / mq) - PullRequest
0 голосов
/ 06 февраля 2020

Я использую Queue Manager на docker, используя последний образ ibmcom / mq , но у меня отказано в доступе, когда я пытаюсь подключиться к нему из моего windows с помощью MQ Explorer .

Я отключил CHLAUTH в MQS C (runmqs c), используя команду: ALTER QMGR CHLAUTH(DISABLED)

Я отключил CONNAUTH с помощью команд:

ALTER QMGR CONNAUTH(' ')
REFRESH SECURITY TYPE(CONNAUTH)

Я удалил стандартные правила CHLAUTH для изображения

SET CHLAUTH(SYSTEM.ADMIN.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
SET CHLAUTH(SYSTEM.*) TYPE(ADDRESSMAP) ADDRESS(*) ACTION(REMOVE)
SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST(*MQADMIN) ACTION(REMOVE)

Я установил прослушиватель и канал и добавил к ним очередь

DEFINE LISTENER(LISTENER.TCP) TRPTYPE(TCP) PORT(30002) CONTROL(QMGR) REPLACE
START LISTENER(LISTENER.TCP)
DEFINE CHANNEL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) REPLACE
DEFINE QLOCAL('MyQueue') REPLACE

Когда я пытаюсь подключиться к каналу SYSTEM.DEF.SVRCONN из windows используя MQ Explorer, я получаю сообщение об ошибке (AMQ4036). Ошибка в / var / mqm / qmgrs / MyQueueManager / errors / AMQERR01.LOG в контейнере docker:

----- cmqxrsrv.c : 2552 -------------------------------------------------------
02/06/20 10:18:13 - Process(1658.19) User(mqm) Program(amqrmppa)
                    Host(5652aa2322eb) Installation(Installation1)
                    VRMF(9.1.4.0) QMgr(MyQueueManager)
                    Time(2020-02-06T10:18:13.718Z)
                    ArithInsert1(2) ArithInsert2(2035)
                    CommentInsert1(myWindowsId)

AMQ9557E: Queue Manager User ID initialization failed for 'myWindowsId'.

EXPLANATION:
The call to initialize the User ID 'myWindowsId' failed with CompCode 2 and Reason
2035. If an MQCSP block was used, the User ID in the MQCSP block was ''. If a
userID flow was used, the User ID in the UID header was '' and any CHLAUTH
rules applied prior to user adoption were evaluated case-sensitively against
this value.
ACTION:
Correct the error and try again.

Я хочу использовать администратор очередей для локальной разработки , Есть ли у вас какие-либо идеи о том, как отключить защиту для моего windows идентификатора пользователя, чтобы он мог соединяться с MQ Explorer и сервером приложений Weblogi c?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

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

ALTER CHANNEL(SYSTEM.DEF.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('user-id-in-mqm-group-on-docker')

Проблема в том, что ваш 'myWindowsId' не определен для ОС в вашем docker контейнере. Приведенная выше команда устанавливает идентификатор пользователя, указанный в поле MCAUSER, и игнорирует идентификатор пользователя, передаваемый каналом из вашего поля Windows.

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

0 голосов
/ 06 февраля 2020

Мне интересно, почему вам нужно отключить безопасность. Если у вас запущен проводник, то следующим шагом будет добавление вашего администратора очередей в проводник. Из учебника - https://developer.ibm.com/messaging/learn-mq/mq-tutorials/develop-mq-macos/

(я знаю, что это для Ма c, но основной принцип такой же для windows).

Это будет :

  1. Щелкните правой кнопкой мыши «Администраторы очередей» в окне MQ Explorer Navigator, затем «Добавить удаленный администратор очередей». Появится всплывающее окно.
  2. Добавьте имя администратора очередей - если Docker - QM1, затем нажмите Далее.
  3. Добавить имя хоста или IP-адрес - если Docker - localhost.
  4. Добавить канал подключения к серверу - если Docker - DEV.ADMIN.SVRCONN, затем дважды нажать «Далее»
  5. Отметьте «Включить идентификацию пользователя», если Docker - по умолчанию установлено значение admin. Оставьте выбранным «Запрос пароля».
  6. Нажмите Fini sh, затем добавьте пароль для пользователя - если Docker - passw0rd. Ваш менеджер очередей должен появиться.
...