Pymqi использует пользователя оболочки вместо одной настройки в коде - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь настроить скрипт для проверки статистики в IBM MQ, используя python с модулем pymqi.Проблема в том, что, похоже, соединение не использует имя пользователя, которое я указал в скрипте.Похоже, что пользователь пытается использовать имя пользователя, выполняющего сценарий.При тестировании соединения я использовал небольшой скрипт вроде этого:

import pymqi

queue_manager = "MYQMGR"
channel = "CHNL.SRV01"
host = "host.to.connect.to.example.net"
port = "1444"
conn_info = "%s(%s)" % (host, port)

user = 'mq-user'
password = 'mq-user-pass'

qmgr = pymqi.connect(queue_manager, channel, conn_info, user, password)
qmgr.disconnect()

Допустим, что скрипт выполняется пользователем linux под названием «shell-user».Затем в логах администратора очередей говорится, что пытается подключиться «shell-user», а не «mq-user», как я написал в скрипте.

Сообщение об ошибке выглядит так:

Traceback (most recent call last):   File "./test_conn.py", line 25, in <module>
    qmgr = pymqi.connect(queue_manager, channel, conn_info, user, password)   File "/usr/lib64/python2.7/site-packages/pymqi/__init__.py", line 2604, in connect
    qmgr.connect_tcp_client(queue_manager or '', CD(), channel, conn_info, user, password)   File "/usr/lib64/python2.7/site-packages/pymqi/__init__.py", line 1447, in connect_tcp_client
    self.connect_with_options(name, cd, user=user, password=password)   File "/usr/lib64/python2.7/site-packages/pymqi/__init__.py", line 1429, in connect_with_options
    raise MQMIError(rv[1], rv[2]) pymqi.MQMIError: MQI Error. Comp: 2, Reason 2035: FAILED: MQRC_NOT_AUTHORIZED

Я использую pymqi 1.8.0 и MQSeriesClient 8.0.0-8.Я искал несколько дней для решения этой проблемы.Кто-нибудь знает, как с этим справиться?

Редактировать:

Версия диспетчера очереди, к которому мы подключаемся, - 8.0.0.8.

Это сообщение об ошибке мы получаем от администратора очередей:

2/1/2019 09:32:45 - Process(8176.400417) User(abcdefg-1234) Program(amqrmppa.exe)
                      Host(mq-host-01) Installation(Installation1)
                      VRMF(8.0.0.8) QMgr(MYQMGR)

AMQ9557: Queue Manager User ID initialization failed for 'shell-user'.

EXPLANATION:
The call to initialize the User ID 'shell-user' failed with CompCode 2 and Reason
2035. If an MQCSP block was used, the User ID in the MQCSP block was
'mq-user'.
ACTION:
Correct the error and try again.
...