python - 如何使用 Python 连接到本地 MQseries 队列?

标签 python ibm-mq pymqi

我是 mqseries 的新手,我是从 IBM WebSphere MQ curses 开始的。有 MQ_APPLEMQ_ORANGE 队列管理器的示例。使用 MQ Explorer 将消息发送到本地或远程队列没有问题,但我想从代码发送此类消息: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 本地队列。

我的代码有什么问题?

最佳答案

根据错误,您似乎正在尝试连接到远程队列管理器,但您正在使用本地队列管理器绑定(bind)方法进行连接。我这样说是因为错误表明 mqi 客户端不知道要连接到哪个 channel 。您能否说明您使用的是本地队列管理器还是远程队列管理器?我粘贴了下面的代码以使用 channel 连接到远程队列管理器。

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 - 如何使用 Python 连接到本地 MQseries 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2536733/

相关文章:

python - macos 上的 pymqi 库未加载 : @rpath/libmqic_r. dylib

python - 如何使用 "pymqi"Python 库在我的队列管理器中配置 CCSID 值?

python - 无法安装 pymqi 或 py3mqi

python - 用Python计算两个坐标之间的距离

php - Odoo 服务器超时和内存限制

python - 使用 selenium 单击元素时出现问题

c++ - 将单个队列连接到多个 qmgrs C++

java - ClassNotFoundException : com. ibm.mq.jms.MQConnectionFactory(Websphere MQ 7.5 + spring jms + maven tomcat 7 插件)

python - Python 中的倍数表

java - IBM MQ-FFDC-CSIException : JMSCS0002 when I try to run from console