如何使用python和绑定文件连接到MQ队列?

时间:2019-05-21 09:20:27

标签: python jms mq

我正在尝试连接远程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个,

谢谢

更新22/05/2019:

我将添加有关尝试内容的更多信息。 我尝试使用绑定模式进行连接,如在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)

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

2 个答案:

答案 0 :(得分:0)

如果要使用绑定模式,则应使用14server参数设置pymqi。您不能同时使用bindingbinding模式:

client

我不确定,您是否可以将.bindings文件与pymqi一起使用而无需亲自对其进行解析。

答案 1 :(得分: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客户端; 您是否在使用snnpet这样的conn_info?