Я хочу создать администратор очередей и очередь на сервере WebSphere MQ, и я хочу сделать две вещи: 1) получить доступ к менеджеру очередей и очереди с помощью WMQ Explorer из клиентской коробки 2) написать автономное приложение Javaкоторый запускается на клиентском ящике и помещает и получает сообщение из очереди.
Однако я получаю исключения аутентификации.Пожалуйста, дайте мне знать, что я делаю неправильно?
Linux Server Box:
У меня установлен WebSphere MQ v7.1
Диспетчер очереди QM_TEST
создан (crtmqm
, strmqm
команды)
Локальная очередь Q_TEST
создана (runmqsc
и define qlocal
)
Определен канал SVRCONN (DEFINE CHANNEL (TEST_CHANNEL) CHLTYPE (SVRCONN) TRPTYPE (TCP)
)
запущен прослушиватель (runmqlsr -t tcp -m QM_TEST -p 1414
)
Linux Client Box:
Попытка показать / скрыть администратор очередей, используя имя хоста, IP-адрес, имя администратора очередей и имя канала;Однако я получаю следующую ошибку:
Access not permitted. You are not authorized to perform this operation. (AMQ4036)
Severity: 10 (Warning)
Explanation: The queue manager security mechanism has indicated that the userid associated with this request is not authorized to access the object.
Попытка получить доступ к администратору очередей и очереди, используя код Java, основные моменты приведены ниже:
public void sendMail(Mail mail) { MQConnectionFactory cf = new
MQQueueConnectionFactory(); Connection conn = null; try { //config
cf.setHostName("hostname"); cf.setPort(1414);
cf.setQueueManager("QM_TEST"); cf.setChannel("TEST_CHANNEL");
cf.setTransportType(WMQConstants.WMQ_CM_CLIENT);//WMQ_CM_DIRECT_TCPIP);
WMQ_CM_CLIENT
conn = cf.createConnection(); //fails here
Однако я получаю следующую ошибку:
Произошла ошибка: JMSWMQ2013: Недопустимая аутентификация безопасности, которая была предоставлена для QueueManager 'QM_TEST' с режимом соединения 'Client' и именем хоста 'hostname (1414)'.
Вы можете помочь?Как передать информацию аутентификации безопасности?Пока нормально, если я могу отключить безопасность.Просто нужно, чтобы это работало?
Дайте мне знать, если мне нужно предоставить больше информации.
ОБНОВЛЕНИЕ:
Я создал 'mq-user 'linux user (группа mq-users).CHLAUTH включен (по умолчанию).После создания администратора очередей QM_TEST (используя sudo mqm) я снова выполнил следующие команды mqsc, используя sudo mqm:
DEFINE QLOCAL(TEST_QUEUE)
SET AUTHREC PROFILE('TEST_QUEUE') OBJTYPE(QUEUE) PRINCIPAL('mq-user') AUTHADD(PUT,GET)
SET AUTHREC OBJTYPE(QMGR) PRINCIPAL('mq-user') AUTHADD(CONNECT)
DEFINE CHANNEL (TEST_CHANNEL) CHLTYPE (SVRCONN) TRPTYPE (TCP)
SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS('xxx.xx.xxx.*') MCAUSER('mq-user')
DEFINE LISTENER (TEST_LISTENER) TRPTYPE (TCP) CONTROL (QMGR) PORT (1414)
START LISTENER (TEST_LISTENER)
Я все еще получаю сообщение об ошибке AMQ4036, недопустимая ошибка.Имейте в виду, я получаю доступ к диспетчеру очереди и очереди с третьего удаленного компьютера (клиентского компьютера), вошедшего в систему как третий пользователь.Однако я понимаю, что могу передать учетные данные «mq-user».Хотелось бы, чтобы где-то были четкие пошаговые инструкции, WebShere MQ 71. Инфоцентр мне не совсем понятен.
Чего здесь еще не хватает?