【问题标题】:How to access all the queue managers by connecting to the IBM MQ Server using IBM MQ classes in java如何通过使用 Java 中的 IBM MQ 类连接到 IBM MQ 服务器来访问所有队列管理器
【发布时间】:2020-08-20 23:26:26
【问题描述】:

我一直在尝试通过提供不带队列管理器名称的服务器详细信息来查找 IBM MQ Server 中的所有队列管理器。

想法是:

  • 我有一个包含服务器详细信息的属性文件 - 主机、端口号、通道、用户 ID、密码。
  • 通过使用此信息,我们需要连接到服务器并找到服务器中所有可用的队列管理器。
  • 我需要在 java 中使用 IBM MQ 类。

既然我们有办法找到队列管理器中的所有队列,我们​​可以用类似的方法找到所有队列管理器吗?

【问题讨论】:

  • 每个队列名称都有自己的监听器,不会知道其他队列管理器。您可以查看 webui 和可能的 REST 接口,这是每台服务器一个,并且可以查看所有队列管理器。
  • @Thirumal Reddy 您的服务器可以托管多个 IBM MQ 安装,并且每个安装都可以是不同的版本。一个安装可以支持一个或多个队列管理器,正如 JoshMc 所说,每个 QM 都可以定义侦听器。此doc 概述了基本的 MQ 概念和对象,以帮助您入门。您是在尝试发现主机上定义的队列管理器还是只是连接到已知列表?端口号可能特定于队列管理器。
  • @richc 我正在尝试查找主机上定义的队列管理器,根据结果,我需要在每个 QM 中查找队列。
  • @Thirumal Reddy 你看过dspmqinst 命令documented here 吗?如果您有多版本安装,这将显示服务器上的 IBM MQ 安装。根据结果​​,应该可以设置您的环境并按照马克的回答中的方法列出每次安装的队列管理器。您可以运行一些 MQSC 来显示每个队列管理器的侦听器,例如,runmqsc QM1 然后 DISPLAY LISTENER(*) 以显示所有侦听器,然后检查每个侦听器的 PORT

标签: java spring-boot ibm-mq


【解决方案1】:

没有。

获取队列列表等 PCF 操作要求您首先连接到队列管理器。要获取机器上的队列管理器列表,则需要操作系统级别的命令。有几种方法可以做到

  • 运行dspmq(如果你能弄清楚它可能在哪里 - 不能假设它总是在 /opt/mqm/bin 中并且可能需要 setmqenv 给它一个可行的环境)然后解析输出
  • 直接解析/var/mqm/mqs.ini(在 Windows 上更具挑战性,在 z/OS 上更糟糕)。

如果您尝试远程执行此操作,则必须将其封装在 ssh 之类的东西中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 2019-12-02
    相关资源
    最近更新 更多