我可以在NOT某些队列名称上过滤MQ“显示队列”吗?

时间:2017-07-19 03:27:05

标签: ibm-mq

我失去了对这个人的爱好。

我正在尝试输出当前深度和最大深度的本地队列列表。以下命令基本上完成了这项工作:

display qlocal(*) curdepth maxdepth

但是,我得到了所有的SYSTEM。*队列,我不希望它们在列表中。从理论上讲,我可以使用where()过滤器来做到这一点,但似乎这个最有用的功能是不可能的,因为......

display qlocal(*) where(???? nl 'SYSTEM*') curdepth maxdepth

...我该怎么做?我尝试了各种各样的,包括看似明显的'队列',但没有任何作用。我是否坚持单独处理输出(由于其可怕的格式化而在最好的时候做家务)以摆脱这些?

1 个答案:

答案 0 :(得分:1)

以下命令可能会有所帮助。由于您无法使用“ where”参数中的队列名称进行过滤,因此最好的解决方案是解析输出。下面的命令基本上将mqsc对象的输出格式化为单行,而egrep删除以SYSTEM开头的所有内容。

echo "dis ql(*) curdepth maxdepth" | runmqsc QMNAME |  sed 's/^[^  ].*$/%/g' | tr -s " " | tr -d "\n" | tr "%" "\n" | egrep -v "^ QUEUE\(SYSTEM"