поднять MQMIError (rv [-2], rv [-1]) pymqi.MQMIError: MQI Error.Комп: 2, причина 2085: СБОЙ: MQRC_UNKNOWN_OBJECT_NAME - PullRequest
0 голосов
/ 03 июля 2019

Я новичок в питоне. Я пытаюсь подключиться к своему IBM MQ и поместить в них некоторые сообщения с помощью кода Python.

import pymqi

queue_manager = 'XXXXXX'
channel = 'XXXXX'
host = 'XXXXX'
port = 'XXXX'
conn_info = '%s(%s)' % (host, port)
qmgr = pymqi.connect(queue_manager, channel, conn_info)
file = open('E:\D Drive Back up\Scripts\Data1.csv','r')
y = file.readlines()
print y[1]
putQ = pymqi.Queue(qmgr, queue_manager)
putQ.put(y[1])
qmgr.disconnect()

Пример данных, которые я пытаюсь ввести:

{1:F01COBADEFFGXXX3575743055}{2:I103BARCGB22GXXXU3003}{4:##:20:Forw092010004R1##:23B:CRED##:32A:181010EUR250000,00##:50F:/N101000004EUR##1/John Doe##2/Dankelmannstrasse 6##3/DE/Berlin##:59F:/N101000004EUR##1/Jane Doe##2/Wissmannstr 1##3/DE/Berlin##:71A:BEN##-}{5:{MAC:11111111}{CHK:6E470F24FDE6}}

Вывод, который я получаю, таков:

E:\D Drive Back up\Scripts>python MQ.py
{1:F01COBADEFFGXXX3575743055}{2:I103BARCGB22GXXXU3003}{4:##:20:Forw092010R1##:23B:CRED##:32A:181010EUR1000000,00##:50F:/N101000004EUR##1/John Doe##2/Dankelmannstrasse 6##3/DE/Berlin##:59F:/N101000004EUR##1/Jane Doe##2/Wissmannstr 1##3/DE/Berlin##:71A:BEN##-}{5:{MAC:11111111}{CHK:6E470F24FDE6}}

Traceback (most recent call last):
File "MQ.py", line 19, in 
putQ.put(y[1])
File "C:\Users\aassharma\AppData\Local\Continuum\anaconda2\lib\site-packages\pymqi_init_.py", line 1727, in put
self._realOpen()
File "C:\Users\aassharma\AppData\Local\Continuum\anaconda2\lib\site-packages\pymqi_init.py", line 1632, in __realOpen
raise MQMIError(rv[-2], rv[-1])
pymqi.MQMIError: MQI Error. Comp: 2, Reason 2085: FAILED: MQRC_UNKNOWN_OBJECT_NAME

1 Ответ

2 голосов
/ 03 июля 2019

Сравните ваш код с образцом pymqi put из - https://dsuch.github.io/pymqi/examples.html#how-to-put-the-message-on-a-queue

import pymqi

queue_manager = 'QM1'
channel = 'DEV.APP.SVRCONN'
host = '127.0.0.1'
port = '1414'
queue_name = 'TEST.1'
message = 'Hello from Python!'
conn_info = '%s(%s)' % (host, port)

qmgr = pymqi.connect(queue_manager, channel, conn_info)

queue = pymqi.Queue(qmgr, queue_name)
queue.put(message)
queue.close()

qmgr.disconnect()

Как уже указывали Мораг Хьюсон и JoshMc, разница составляет queue_name.Вы не указываете один.

Это должно быть что-то вроде 'DEV.QUEUE.1' и использоваться в качестве второго параметра в вызове для соединения с очередью - queue = pymqi.Queue(qmgr, queue_name).Вы передаете в диспетчере очередей, который, я думаю, будет что-то вроде «QM1», что вряд ли будет именем очереди на вашем сервере MQ, а также причиной возникновения ошибки MQRC_UNKNOWN_OBJECT_NAME.

...