ibm-mq - 通过 MQ Explorer 连接容器中的远程队列管理器

标签 ibm-mq

我想通过 mq explorer 访问队列管理器,但出现错误:

  • 无法建立与队列管理器的连接 - 原因 2538。(AMQ4059) 无法与队列管理器建立连接 - 原因 2538。(AMQ4059)
  • 严重性:10(警告)
  • 说明: 尝试连接到队列管理器失败。这可能是因为队列管理器未正确配置为允许来自该系统的连接,或者连接已断开。
  • 响应:重试该操作。如果错误仍然存​​在,请检查问题确定信息以查看是否记录了任何信息。

我按照 https://www-01.ibm.com/support/docview.wss?uid=swg21623113 中的所有说明进行操作为了让 mq explorer 能够访问 mq 服务器,但仍然没有成功。

IBM MQ 服务器详细信息:

  • 版本:8
  • 操作系统:Centos
  • 在 Docker 容器中运行
  • 使用端口 1417,因为我的 1414 端口不可用于其他 MQ 服务器
  • 监听器已启动并指向端口 1417
  • channel 的定义与我分享的链接中的描述一致(我按照描述禁用了所有安全功能)
  • 我有一个示例 Java 应用程序,可以放置/获取消息,并且运行良好

MQ 资源管理器详细信息:

我原本希望在 MQ 服务器中收到错误消息来了解问题,但令人惊讶的是根本没有错误消息......

Screenshot

最佳答案

您已经声明您的队列管理器正在一个容器中运行,而您的 MQ Explorer 正在另一个容器中运行。我注意到您提供了 0.0.0.0 作为主机名,但运行 MQ Explorer 的容器上没有运行队列管理器!

如果您运行以下命令(替换为运行队列管理器的容器的 ID),您应该获得 docker 子网上容器的 IP 地址。尝试在 MQ Explorer 中使用该 IP 地址而不是 0.0.0.0:

docker inspect --format "{{ .NetworkSettings.IPAddress }}" <QM container>

如果您的容器位于不同的 docker 网络上,那么您将需要运行以下命令,并将其替换为您为 docker 网络指定的名称:

docker inspect --format "{{ .NetworkSettings.Networks.<Network Name>.IPAddress }}" <QM container>

此外,当您创建队列管理器容器时,您是否记得公开您尝试使用的 1417 端口?默认情况下mq-container示例仅公开以下端口:1414、9157 和 9443。当您运行容器时,您需要公开端口,但提供 --publish-all --publish 1417当你运行容器时。例如:

docker run -d -e LICENSE=accept --publish-all --publish 1417 ibmcom/mq

关于ibm-mq - 通过 MQ Explorer 连接容器中的远程队列管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55071393/

相关文章:

c - 我的C与MQ接收消息返回代码2037

monitoring - 如何配置 IIB 10 以将 monitoring_event 消息作为持久性发布到持久性 MQ 队列?

java - JMS 读取消息 MalformedInputException

java - 自动启动 false 不适用于 DefaultMessageListenerContainer

ssl - 使用 7.1 jar 的 WMQ SSL 高可用性 JMS 连接出现错误

ibm-mq - MQ SYSTEM.CLUSTER.REPOSITORY.QUEUE深度不断增加

ibm-mq - 如何确定队列的 `MaxMsgLength`的值

java - Spring MDP - 如何在收到错误消息时将其关闭

ibm-mq - MQ 修复包升级问题

.net - 启用 SSL 的 MQ 客户端连接