0

我正在尝试与远程 MQ 队列/系列连接,而我只有一个 .bindings 文件来执行此操作。我正在尝试使用 python 库“pymqi”,但无法使用绑定模式进行连接。有人知道我应该做什么或应该将文件放在哪里以便与库一起使用吗?是否有其他一些 python 解决方案可以连接到 MQ 队列?

这是我的 .bindings 文件的一瞥:

JMSC/ClassName=com.ibm.mq.jms.MQQueueConnectionFactory
JMSC/FactoryName=com.ibm.mq.jms.MQQueueConnectionFactoryFactory
JMSC/RefAddr/0/Type=VER
JMSC/RefAddr/0/Encoding=String
JMSC/RefAddr/0/Content=7
JMSC/RefAddr/1/Type=TRAN
JMSC/RefAddr/1/Encoding=String
JMSC/RefAddr/1/Content=1
JMSC/RefAddr/2/Type=QMGR
JMSC/RefAddr/2/Encoding=String
JMSC/RefAddr/2/Content=MQFEND00
JMSC/RefAddr/3/Type=HOST
JMSC/RefAddr/3/Encoding=String
JMSC/RefAddr/3/Content=somehost
JMSC/RefAddr/4/Type=PORT
JMSC/RefAddr/4/Encoding=String
JMSC/RefAddr/4/Content=1414
JMSC/RefAddr/5/Type=CHAN
JMSC/RefAddr/5/Encoding=String
JMSC/RefAddr/5/Content=PORTALS.MQFEND00

它有大约 100 个参数,即前 6 个,

谢谢

2019 年 5 月 22 日更新:

我将添加有关我尝试的更多信息。正如我在 pymqi 文档中看到的那样,我尝试使用绑定模式进行连接:

qmgr = pymqi.connect('MQFEND00')

我得到这个错误:

MQI Error. Comp: 2, Reason 2058: FAILED: MQRC_Q_MGR_NAME_ERROR

我不确定它是否是 queue_manager,有人知道我如何从绑定文件中获取 queue_manager?

我还尝试连接主机、通道和端口:

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

我得到一个未授权的错误,我认为这是因为第二种方式是与客户端连接,我需要我没有的用户名和密码。

4

2 回答 2

0

可能我对这个讨论很晚了,但是:

import pymqi


queue_manager = 'MQFEND00'
channel = 'PORTALS.MQFEND00'
host = 'somehost'
port = '1414'
conn_info = '%s(%s)' % (host, port)
qmgr = pymqi.connect(queue_manager, channel, conn_info)
# other operations, see https://dsuch.github.io/pymqi/examples.html for more.
qmgr.disconnect()

您必须在运行 pymqi 的同一台机器上安装 MQ 客户端;您是否使用 conn_info 之类的代码 snnipet?

于 2019-09-20T00:51:31.240 回答
0

如果你想使用绑定模式,你应该使用serverbinding参数设置pymqi。您不能同时使用bindingclient模式:

#From pymqi folder    
cd ./code
./setup.py build server

我不确定,您是否可以在不自己解析的情况下将 .bindings 文件与 pymqi 一起使用。

于 2019-05-26T18:52:57.310 回答