【问题标题】:Failed to connect to queue manager 'QUEUE-NAME' with connection mode 'Client' and host无法使用连接模式“客户端”和主机连接到队列管理器“队列名称”
【发布时间】:2015-06-19 07:36:48
【问题描述】:

我使用 Camel 开发了订阅(主题)概念。它在我的本地 tomcat 中工作正常。但在我的测试环境 tomcat 中无法正常工作。它正在低于提到的错误。请帮助我解决问题以及如何调试问题。

和服务器配置有关吗?

错误

    org.apache.camel.component.jms.JmsMessageListenerContainer refreshConnectionUntilSuccessful
     SEVERE: Could not refresh JMS Connection for destination 'TOPIC-NAME' - retrying in 5000 ms. Cause: JMSWMQ0018: Failed to
 connect to queue manager 'QUEUE-MANAGER' with connection mode 'Client' and
 host name 'HOST-NAME'.; nested exception is com.ibm.mq.MQException:
 JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED')
 reason '2059' ('MQRC_Q_MGR_NOT_AVAILABLE').

问候, 纳纳

【问题讨论】:

  • 那个错误报告 TOPIC-NAME 真的是要使用的主题名称吗?或者是一些没有被替换为实际值的值?
  • 主题名称虚拟值。我不应该分享实际的主题名称。
  • 您是否尝试过我在回答中提到的任何诊断方法?当你这样做时发生了什么?

标签: java tomcat apache-camel ibm-mq jms-topic


【解决方案1】:

这里几乎没有信息可以继续,因此无法自信地回答。相反,我将提供一个诊断过程,希望您能找到问题所在。请注意,如果您以后遇到类似问题,列出您已经尝试过的诊断方法会有所帮助,以便回复的人可以缩小他们的答案范围。

为了使其工作,QMgr 必须运行一个侦听器,定义一个可用的通道,设置允许连接的授权,并且能够解析请求的队列或主题。考虑到这一点,我通常检查的内容和我检查它们的顺序如下:

  1. QMgr 是否正在运行。
  2. 监听器是否正在运行?在哪个港口?
  3. 我可以远程登录到侦听器端口上的 QMgr 吗?即telnet mqhost 1414
  4. 频道是否已定义?如果有,是否可用?
  5. 示例客户端程序是否有效?在这种情况下,amqspubc 是可以尝试的。

还有其他注意事项,如果上述所有工作都有效,是时候查看客户端代码和配置、客户端和服务器的版本、授权等。但直到您知道基本配置已到位要支持客户端连接(问题中没有指出),那么这些就是开始的事情。

【讨论】:

  • 我已经验证我可以使用 telnet 命令连接 mqhost
  • 端口和其他细节是正确的。它在我的本地机器上运行良好。相同的代码在测试环境中不起作用
  • 是的,我们可以连接。我们怀疑这是环境问题。如何证明是环境问题。
  • 取决于版本。您能否在客户端应用程序节点和 QMgr 节点上使用 dspmqver -a 的输出更新问题?
  • 嘿@T.Rob 我试过你的诊断。我的第 3 步失败,即使我针对 MQ 运行客户端,我的操作也会超时 我得到相同的 JMSCMQ0001:WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2538' ('MQRC_HOST_NOT_AVAILABLE')。这个问题的根源是:java.net.ConnectException: Operation timed out 我该怎么办?
猜你喜欢
  • 2019-10-19
  • 2021-12-06
  • 2020-04-06
  • 2017-08-21
  • 1970-01-01
  • 1970-01-01
  • 2018-06-28
  • 2021-01-15
  • 1970-01-01
相关资源
最近更新 更多