Как соединиться с локальной очередью MQseries, использующей Python?

Я плохо знаком с mqseries, и я запустил с IBM WebSphere проклятия MQ. Существуют примеры с MQ_APPLE и MQ_ORANGE диспетчеры очереди. У меня нет проблемы с отправкой сообщений локальной или удаленной очереди с Проводником MQ, но я хотел отправить такое сообщение от кода: Python или Java. Я попробовал Python pymqi библиотека с кодом как это:

import pymqi

qmgr = pymqi.QueueManager(None)
qmgr.connect('QM_APPLE')

putq = pymqi.Queue(qmgr, 'Q1')
putq.put('Hello from Python!')

но я получаю ошибку:

Traceback (most recent call last):
    File "mq_put.py", line 4, in <module>
        qmgr.connect('QM_APPLE')
    File "c:\Python26\lib\site-packages\pymqi.py", line 758, in connect
        raise MQMIError(rv[1], rv[2])
pymqi.MQMIError: MQI Error. Comp: 2, Reason 2540: FAILED: MQRC_UNKNOWN_CHANNEL_NAME

Существует QM_APPLE диспетчер очереди с Q1 локальная очередь.

Что не так с моим кодом?

5
задан Michał Niklas 29 March 2010 в 09:43
поделиться

2 ответа

Судя по ошибке, вы пытаетесь подключиться к удаленному администратору очередей, но используете для подключения метод привязки локального администратора очередей. Я говорю это, потому что ошибка говорит о том, что клиент mqi не знает, к какому каналу подключиться. Не могли бы вы пояснить, используете ли вы локальный администратор очередей или удаленный администратор очередей? Я вставил приведенный ниже код для подключения к удаленному администратору очередей с помощью канала.

import pymqi

queue_manager = "QUEUE_MANAGER_NAME"
channel = "SVRCONN.1"
host = "host.domain.com"
port = "1434"
conn_info = "%s(%s)" % (host, port)

qmgr = pymqi.QueueManager(None)
qmgr.connectTCPClient(queue_manager, pymqi.cd(), channel, conn_info)
3
ответ дан 14 December 2019 в 19:08
поделиться

В вашем сообщении упоминается, что вы хотите, чтобы это работало на Python или Java. Python, с которым я не могу помочь, но предыдущий респондент помог, так что здорово. Что касается Java, может быть, я смогу указать вам в правильном направлении. IBM поддерживает как Java, так и JMS и предоставляет несколько примеров программ для каждой из них. По умолчанию они установлены по адресу:

C: \ Program Files \ IBM \ WebSphere MQ \ tools \ wmqjava

C: \ Program Files \ IBM \ WebSphere MQ \ tools \ jms

Я также предлагаю свой собственный пример кода здесь: http://www.ibm.com/developerworks/websphere/techjournal/0610_woolf/0610_woolf.html

Документация по реализации IBM Java и JMS WMQ API находится здесь: http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzaw.doc/uj10120_.htm

Документы I обнаруженный в модуле Python, похоже, указывает на то, что он должен быть связан с клиентскими или серверными библиотеками WMQ, а ваша ошибка, похоже, указывает на то, что у вас есть связанные привязки клиента. В этом случае вы должны предоставить информацию о подключении, как указано в предыдущем сообщении. Код Java и JMS поддерживает оба типа подключения, поэтому связывание не требуется, но вы все равно должны предоставить правильные данные о подключении. В частности, прочтите главу о различиях в подключении: http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzaw.doc/ja11010_ .htm

- T.Rob

2
ответ дан 14 December 2019 в 19:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: