Python pymqi 连接 IBM MQ

记录一下,环境基本信息是

# pymqi-1.7.2.post1  windows 7 64 ,Python2.7.15  ibmmq 7.0 client
# pymqi-1.7.2.post1  windows 7 64 ,Python2.7.15  ibmmq 7.0 client
import pymqi
queue_manager = 'DZD_ZSSS_01_TST84'
channel = 'SVRCONN'
host = '100.100.100.84'
port = '2403'
queue_name = 'S_TMP'
message = 'Hello from Python!'
conn_info = '%s(%s)' % (host, port)

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

queue = pymqi.Queue(qmgr, queue_name)
queue.put(message)
queue.close()

qmgr.disconnect()

另一个是 连接  MQ获取队列深度。是参看别人的例子:https://blog.csdn.net/zhaoyangjian724/article/details/77094892

import sys
import os
import pymqi
import time
import re

if len(sys.argv) != 5:
    print sys.argv[0] + ' ' + 'queue_manager' + ' ' + 'channel' + ' ' + 'host' + ' ' + 'port'
else:
    queue_manager = sys.argv[1]
    channel = sys.argv[2]
    host = sys.argv[3]
    port = sys.argv[4]
    conn_info = "%s(%s)" % (host, port)
    prefix = "*"
    queue_type = pymqi.CMQC.MQQT_LOCAL
    args = {pymqi.CMQC.MQCA_Q_NAME: prefix,
            pymqi.CMQC.MQIA_Q_TYPE: queue_type}
    print '-----------------------------------------'
    print args
    print '-----------------------------------------'
    qmgr = pymqi.connect(queue_manager, channel, conn_info)
    pcf = pymqi.PCFExecute(qmgr)
    response = pcf.MQCMD_INQUIRE_Q(args)
    for queue_info in response:
        queue_name = queue_info[pymqi.CMQC.MQCA_Q_NAME]
        if (re.match('^SYSTEM', queue_name) or re.match('^AMQ', queue_name) or re.match('^MQ', queue_name)):
            pass
        else:
            q = pymqi.Queue(qmgr, queue_name)
            print(queue_name.strip() + ':' + 'Queue  depth:', q.inquire(pymqi.CMQC.MQIA_CURRENT_Q_DEPTH))
            q.close()
    qmgr.disconnect()

执行代码时遇到了不懂怎么传入参数。。。。参看了:https://blog.csdn.net/jacke121/article/details/77867939

执行效果:

Python pymqi 连接 IBM MQ

2.7安装的时候 装了 VCForPython27.msi 

pip 升级到了10.x