Я плохо знаком с 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
локальная очередь.
Что не так с моим кодом?
Судя по ошибке, вы пытаетесь подключиться к удаленному администратору очередей, но используете для подключения метод привязки локального администратора очередей. Я говорю это, потому что ошибка говорит о том, что клиент 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)
В вашем сообщении упоминается, что вы хотите, чтобы это работало на 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