您想要获取特定队列管理器的队列列表。我似乎明白如何做到这一点,但是当我尝试时,我得到了一个错误。
回溯(最后一次调用):文件“D:/project/Work-Project/queue list.py”,第 23 行,响应 = pcf.MQCMD_INQUIRE_Q(args) 文件“C:\Users\ShevcovAA\AppData\Local\ Programs\Python\Python37\lib\site-packages\pymqi_init _.py ”,第 2769 行,调用 消息 = self._pcf.reply_queue.get (None, get_md, get_opts) 文件“C:\Users\ShevcovAA\ AppData\Local\Programs\Python\Python37\lib\site-packages\pymqi_ init .py",第 2021 行,在 get raise MQMIError(rv[-2], rv[-1], message=rv[0], original_length =rv[-3]) pymqi.MQMIError:MQI 错误。比较:2,原因 2033:失败:MQRC_NO_MSG_AVAILABLE
我的代码:
import logging
import re
import pymqi
logging.basicConfig(level=logging.INFO)
queue_manager = 'QM1'
channel = 'DEV.APP.SVRCONN'
host = '127.0.0.1'
port = '1414'
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}
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()