如何在有消息代理流时找到输入队列(MQ)

时间:2013-09-17 11:25:58

标签: ibm-mq mq messagebroker

我在执行组的MB中有一个已部署的条形文件。现在我想找出Broker流输入的输入队列名称。

PlatForm:AIX

2 个答案:

答案 0 :(得分:0)

我希望您能够从Windows机器连接到远程代理。您可以通过MB资源管理器查看消息流使用的队列。如果您安装了 MB资源管理器,那么只需配置您的代理并单击您的流程即可。它将向您显示MQ资源管理器内容中的“已使用队列”。

或者,如果您没有MB资源管理器,也可以使用 CMP API Excerciser 工具(在名为samples的文件夹下的MB安装目录中可用)

此外,正如CMP练习者所做的那样,您可以使用MB API编写简单的Java应用程序,并通过消息流的对象调用 getQueues()函数

我不确定是否有直接的unix命令用于此目的。

答案 1 :(得分:0)

mqsireportproperties BROKER_NAME -e EXECUTION_GROUP_NAME -d AllMessageFlows -r

其中: BROKER_NAME是您的Broker(<版本9)/ Integration Node(> =版本9)的名称, EXECUTION_GROUP_NAME是您的执行组(<版本9)/ Integration Server(> =版本9)的名称。

这将列出与所有消息流关联的所有属性,这些属性都部署到EG和Applications(> =版本8)。

要查找您感兴趣的队列名称,我建议将输出重定向到文件,并使用vi或sed等搜索字符串'queueName'(区分大小写)。

例如: mqsireportproperties BROKER_NAME -e EXECUTION_GROUP_NAME -d AllMessageFlows -r | grep queueName

您将在其中找到包含'queueName'的多行。有些是您不需要担心的内部队列,有些是您已部署的流中的队列。为了告诉你想要哪一个,你需要检查输出。

输出首先直接在执行组中列出消息流,然后是应用程序。在标签'Application'下,您将找到标签'MessageFlow',然后是MQ Input节点的标签,它将是'ComIbmMQInputNode'。在此之下,您将找到带有您要查找的值的'queueName'参数,例如QUEUENAME = 'INPUT_QUEUE_NAME'。如果您有多个应用程序,则必须找到您要查找的应用程序,每个应用程序下都有一个“label”参数,它将是它的名称。消息流也是如此。